gpt4 book ai didi

c++ - WIndows服务在远程桌面运行桌面程序

转载 作者:行者123 更新时间:2023-11-28 01:06:13 24 4
gpt4 key购买 nike

我需要在远程桌面启动程序,这个程序打开一个窗口并需要用户交互,但我的应用程序是一个 Windows 服务。

我使用的是 Windows 2008。我成功创建了一个应用程序,但启动程序仅通过鼠标、键盘进行 session 连接,但我需要在 RDP 中启动。

现在我正在使用这些功能。

WTSEnumerateSessions (enum all sessions, here I know if RDP)
WTSQueryUserToken (Get user token)
DuplicateTokenEx ( make a primary token)
CreateProcessAsUser (run application with SI.lpDesktop = _T("winsta0\\default"))

但这仅适用于在控制台连接到键盘、鼠标、显示器而不是 RDP 的运行应用程序成功。

无论如何可以帮助我吗?谢谢。

最佳答案

所以您正尝试在机器上的特定 RDP session 中启动 GUI 应用程序?你的想法或多或少是正确的,尽管你可能会遗漏一些。看看 ProcessHelper classCassia library 的自动化测试源中.您可以删除大量用于 C++ 的托管杂物。如果您不需要以提升的权限运行该进程,您也可以省略 GetTokenInformation( ...TokenInformationClass.TokenLinkedToken... ) 废话。此代码已在自 Windows XP 以来的每个 Windows 版本上进行了测试。

另请注意,调用 WTSQueryUserToken 需要 SE_TCB_NAME 权限(LocalSystem 帐户默认具有该权限)。

关于c++ - WIndows服务在远程桌面运行桌面程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5956704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com