加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows服务的替代方案

发布时间:2020-12-14 02:16:00 所属栏目:Windows 来源:网络整理
导读:我目前正在编写一个使用低级鼠标钩子的应用程序.因为我必须使用具有管理员权限的系统启动应用程序,所以我想创建一个服务(参见此处: Is this a practical use of a service?). 现在我刚刚发现服务无法使用钩子鼠标钩子.所以我需要一个新概念,但我真的不知道
我目前正在编写一个使用低级鼠标钩子的应用程序.因为我必须使用具有管理员权限的系统启动应用程序,所以我想创建一个服务(参见此处: Is this a practical use of a service?).
现在我刚刚发现服务无法使用钩子鼠标钩子.所以我需要一个新概念,但我真的不知道从哪里开始.我已经尝试过一个简单的过程,但我无法使用任务调度程序在系统启动时以管理员身份运行它.

那么建议使用什么?我还应该使用Windows服务来启动进程吗?这有点矫枉过正吗?

编辑:我刚刚尝试启动我的进程,从服务中执行钩子.该过程开始但看起来,它的行为与简单的服务行为相同.我可以安装钩子,但不会调用回调.
我正在用这段代码开始这个过程:

STARTUPINFO info={sizeof(info)};
PROCESS_INFORMATION processInfo;
if (!CreateProcess(path,NULL,TRUE,&info,&processInfo))
{
    std::wstring msg(L"Could not start "");
    msg.append(path);
    msg.append(L"". CreateProcess");
    WriteErrorLogEntry((PWSTR)msg.c_str());
    return;
}

我怎样才能解决我的问题?该过程必须以管理员权限运行,但需要另一个上下文?

解决方法

我的猜测是鼠标输入是每个会话,所以我猜你没有得到你想要的行为,因为你的进程没有在你想要的 WindowsStation中运行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读