Service windows服务锁定屏幕

Service windows服务锁定屏幕,service,process,locking,window,desktop,Service,Process,Locking,Window,Desktop,我想使用窗口服务锁定屏幕。我的操作系统是Win7,我知道该服务存在一些权利问题,因此我做了以下实验,但我的实验都没有成功 我创建了一个新的exe文件并调用了inside LockWorkStation。手动锁定屏幕,但从服务调用此exe会拒绝访问 这是我服务中的呼叫方代码 if (CreateProcess(folder.c_str(),NULL, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo)) { :

我想使用窗口服务锁定屏幕。我的操作系统是Win7,我知道该服务存在一些权利问题,因此我做了以下实验,但我的实验都没有成功

我创建了一个新的exe文件并调用了inside LockWorkStation。手动锁定屏幕,但从服务调用此exe会拒绝访问

这是我服务中的呼叫方代码

if (CreateProcess(folder.c_str(),NULL, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo))
{
        ::WaitForSingleObject(processInfo.hProcess, 1000);
        DWORD exit = 100;
        GetExitCodeProcess(processInfo.hProcess, &exit);

        CloseHandle(processInfo.hProcess);
        CloseHandle(processInfo.hThread);
}

要使其运行,我必须使用当前windows用户id和密码登录我的服务。但它仍然不工作,然后我勾选了允许服务与桌面交互。使用此选项将获得成功,并且不会显示错误,但屏幕仍不会锁定。(我知道使用桌面服务进行交互是不安全的,但我在想,是否有人对此有任何解决方案?

我正试图做完全相同的事情!你成功了吗?不幸的是我找不到!但必须改变方式,使用另一个在windows启动时运行的代理exe,它用来监视注册表更改…一旦找到更改,它就会锁定窗口。在服务端,我只使用注册表项来编写。(如果你能找到比这个更好的解决方案,那么请在这里分享)我想我最终会得到与你类似的解决方案。另一个解决方案是使用一些IPC,比如RPC系统,但是注册表似乎更容易实现!