我进行了大量搜索,希望找到一种在Windows 7上从Windows服务启动GUI应用程序的方法。 我发现大多数情况下,由于Windows 7服务现在运行在单独的用户会话中,并且不能向当前用户显示任何图形界面,因此无法实现此功能。 我想知道是否有任何变通方法或不同的方式来实现这样的功能? 服务能否在不同的用户会话中启动进程?
我进行了大量搜索,希望找到一种在Windows 7上从Windows服务启动GUI应用程序的方法。 我发现大多数情况下,由于Windows 7服务现在运行在单独的用户会话中,并且不能向当前用户显示任何图形界面,因此无法实现此功能。 我想知道是否有任何变通方法或不同的方式来实现这样的功能? 服务能否在不同的用户会话中启动进程?
这个更改是有原因的,不仅仅是为了烦扰开发人员。正确的方法是将UI放在一个不同的程序中,并通过管道或其他IPC机制与会话通信。服务不呈现UI的建议已经超过10年了。
即使一开始可能会感觉不方便,你真的应该尝试遵循这些规则。好处是可以保持服务逻辑和UI逻辑分离。
如果你的服务在LOCALSYSTEM帐户下运行,则可以勾选“允许服务与桌面交互”,以便于那些无法显示UI的传统服务。但是它对你也没有帮助,因为UI会显示在从未见过的会话0中!
我建议你阅读官方的Microsoft文档,描述了会话0隔离。