我有一个使用 OpenGL 进行 3D 渲染的 GUI 应用程序。该应用程序具有自动化模式,其中实际的 GUI 自动化由另一个 AutomationHost 程序控制和自动化。该应用程序需要在 Windows Server VM 上运行,并且在该自动化模式下,应用程序需要 OpenGL 才能正常运行。

更新 Qt 和 Coin3D 后,应用程序和较新的 OpenGL 3.x 可以安装 Mesa3D 来启用软件渲染,虽然这允许应用程序在服务器上运行,但当 RDP 会话处于不活动状态、断开连接或最小化时,应用程序现在停止工作。

我发现这个命令可以将终端会话转换为控制台会话

for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (tscon.exe %%s /dest:console)

这是一种可行的解决方案,但并不理想。每次您必须通过 RDP 连接到服务器时,都需要在断开连接之前运行该命令。重新启动后,该应用程序也将无法正常运行。它需要手动使用远程桌面登录并运行命令以使应用程序在重新启动后运行。

我需要一种方法来保持 GUI 上下文或会话处于活动状态,而无需任何远程连接:

  1. 重启后无需人工干预。

  2. 在 RDP 会话中工作。另一种选择是 VNC 或其他远程桌面协议,但这是否需要手动启动应用程序,以便它在 VNC 使用的任何会话中运行并保持活动状态?

  3. 如果您确实手动登录远程桌面进行调试,则允许您仍然查看并与 GUI 交互。

  4. 不需要安装未签名的驱动程序。

0