从Windows服务启动GUI应用程序

时间:2013-11-04 02:10:03

标签: windows winapi service createprocess launching-application

我已阅读此post,但我对给定的答案收效甚微。它说

  

使用WTSEnumerateSessions找到合适的桌面

但我得到的只是WTS_SESSION_INFO结构中的电台名称。我看到的名字(例如“console”,“service”)与“Winsta0 \ default”之类的电台/桌面名称完全不同。答案继续进行陈述

  

然后CreateProcessAsUser在该桌面上启动应用程序(将它作为STARTUPINFO结构的一部分传递给桌面的句柄)

我不认为它指的是桌面的HANDLE变量,因为STARTUPINFO没有成员。我认为它指的是lpDesktop成员,它允许您指定工作站/桌面名称。使用WTSEnumerateSessions返回的名称无法启动任何可见的UI,而“Winsta0 \ default”则无法启动。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

在Windows 7上尝试过WTSEnumerateSessions:我的用户会话(会话1)被命名为“Console”。