用于启动和重新启动用户进程的Windows服务(使用GUI)

时间:2011-11-15 12:09:07

标签: c++ user-interface windows-services impersonation

我需要在每个用户的计算机上持续运行某个进程。如果该.exe被杀死,我必须能够重新启动它并发送警报 我立即想到构建一个Windows服务作为理想的解决方案,但我遇到了一个问题:

  • 该服务启动的过程需要能够与用户交互,例如能够向他展示一个GUI。
  • 我的应用程序还设置了一个键盘钩子以监视the user's typing rhythms,当我从服务启动.exe时,无法访问该信息。

从服务中我可以“作为用户”(使用LogonUser和CreateProcessAsUser函数)启动进程,但仍然无法看到GUI。
这可能吗?如果没有,我可以用什么来实现所需的功能?

TIA

1 个答案:

答案 0 :(得分:3)

默认情况下,GUI .exe将在服务会话中运行,该会话与用户的交互式会话分开。您需要研究构建interactive service的技术。