从 Windows 服务启动 GUI 应用程序
Posted
技术标签:
【中文标题】从 Windows 服务启动 GUI 应用程序【英文标题】:Launching a GUI application from Windows service 【发布时间】:2013-11-04 02:10:03 【问题描述】:我已阅读此post,但给出的答案收效甚微。它说
使用 WTSEnumerateSessions 找到合适的桌面
但我得到的只是WTS_SESSION_INFO
结构中的站名。我看到的名称(例如“控制台”、“服务”)与“Winsta0\default”之类的工作站/桌面名称完全不同。答案继续陈述
然后 CreateProcessAsUser 在该桌面上启动应用程序(您将桌面句柄作为 STARTUPINFO 结构的一部分传递给它)
我不认为它指的是桌面的HANDLE
变量,因为STARTUPINFO
没有成员。我认为它指的是lpDesktop
成员,它允许您指定站/桌面名称。使用 WTSEnumerateSessions
返回的名称无法启动任何可见的 UI,而“Winsta0\default”可以。
我做错了什么?
【问题讨论】:
如果我的回答对您有帮助,请告诉我。 【参考方案1】:刚刚在 Windows 7 上尝试了 WTSEnumerateSessions:我的用户会话(会话 1)被命名为“控制台”。
【讨论】:
感谢您的确认。以上是关于从 Windows 服务启动 GUI 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
VS CodedUI无法启动经典Windows应用程序的GUI