[英]How to create a Silverlight application that interacts with a C++ web service?
[英]How can I launch a C++ native application from a Windows Service main function (the application interacts with the console)?
我正在使用_spawnl()
函数从主要Service函数( SvcMain
)启动C ++本机应用程序,但是该应用程序永远无法运行。
是否有启动与用户交互的应用程序的技巧?
它正在运行,您只是看不到它。 您必须使用CreateProcessAsUser()
而不是_spawnl()
以便新进程在特定用户的会话中运行,而不是在服务自己的会话中运行。 在Vista和更高版本中,服务在其自己的隔离会话(会话0隔离)中运行,用户无法查看或与其交互。 常见的解决方案是使用WTSGetActiveConsoleSessionId()
和/或WTSEnumerateSessions()
查找所需的用户会话,然后使用WTSQueryUserToken()
获取令牌hanlde可以与CreateEnvironmentBlock()
和CreateProcessAsUser()
。 另外,在向CreateProcessAsUser()
提供STARTUPINFO
时,请将lpDesktop
字段设置为"WinSta0\\\\default"
(登录后可以与之交互的用户默认桌面)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.