Windows服务在会话0中运行,而交互式程序在另一个会话中运行。通常,只有一个登录用户时,这将是会话1。现在,您的代码将在会话0中创建进程,因为它在会话0中运行。因此,会话1中的交互式用户桌面无法与这些进程进行交互。
可以在与进程父进程不同的会话中启动进程的运行,但这绝非易事:http :
//blogs.msdn.com/b/winsdk/archive/2009/07/14/launching-
an从Windows的服务交互过程在Windows
Vista和Later.aspx中
一种可能的解决方法是运行一个后台进程,该进程在每个用户登录时启动。该服务可以使用IPC与后台进程进行通信,并要求后台进程完成在交互式桌面中启动进程的常规工作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)