我计划使用Windows服务(用C#编写)运行启动/监控UI应用程序。选中“允许服务与桌面交互”。这适用于windows xp,但是对于Windows 7,弹出窗口如下所示
当我点击查看该消息时,整个屏幕会显示空白,只显示UI,如下所示。
有没有办法使它工作,而不显示消息,屏幕变为空白。
评论/建议赞赏。
此致 DEE
答案 0 :(得分:7)
在Vista及更高版本中,服务无法与桌面交互。服务在所谓的会话0隔离下运行。你正在尝试的是根本不可能的。
您必须重新编写应用程序,以便UI部件驻留在登录用户桌面上运行的标准Windows应用程序中。这个UI部分可以通过您喜欢的任何IPC机制与服务进行通信。
答案 1 :(得分:3)
“允许服务与桌面交互”是一种遗留选项,现在非常不鼓励,虽然它存在,但预计不会在Windows Vista及更高版本中运行。
你需要先阅读一下为什么在其他SO答案中就是这种情况:
Allow service to interact with desktop in Windows
然后在这里找到答案中讨论的替代方案:
Alternative to "Allow service to interact with desktop"?
SO之外的另一个讨论:
http://social.msdn.microsoft.com/forums/en-US/windowssdk/thread/f8f91e8f-5954-43a7-8bc4-80ed2ff1e3b1/