保持远程桌面会话“活着”

保持远程桌面会话“活着”

问题描述:

我使用AutoIt自动执行GUI操作(使用RDP连接到运行待自动化应用程序的计算机)。每当我最小化RDP窗口(使用mRemote)时,不再执行AutoIt命令。保持远程桌面会话“活着”

当我最小化窗口(我不知道这是否属实,也不知道如何配置此行为,如果是),RDP会话标记为“不活动”。我正在考虑2个选项来解决这个问题:

  1. 将我的进程作为一些提升的用户(或服务)运行。
  2. 查找此配置,该配置控制会话是否被标记为非活动并覆盖它。

如何在RDP窗口最小化时保持远程桌面会话“活动”?

我们与RDP有同样的问题。我们使用的解决方法是打开另一个远程桌面会话以连接到同一服务器:

  1. 您使用RD连接到sever
  2. 从步骤1的RD开始,您再次连接到server

这样,当您最小化或甚至断开第一个RD会话时,第二个会话仍然是“活动的”。当然,您的远程桌面服务器必须支持来自同一用户的多个连接。

+1

@liortal是的,这是真的。我想这与Windows的绘制方式有关:如果Windows目前不可见,它将不会收到“WM_PAINT”消息。当最小化远程桌面窗口时,它不再可见,因此不会被绘制;此外,它不会收到鼠标事件:毕竟远程桌面与您的客户端桌面共享鼠标。 – 2011-04-03 12:39:27

我的夜间回归套件用于在本地机器上失败,因为企业规则在闲置14分钟后自动锁定机器。所以我写了一个小的vbScript程序,每12分钟按一下“PrintScreen”键,它真的解决了这个问题。虽然这不在RDP上,但在远程机器上执行类似的操作会有所帮助。

您可能希望将当前的RDP会话附加到CONSOLE。在这种情况下,即使断开连接,用户界面仍然处于活动状态。

TSCON {sessionid | sessionname} /DEST:CONSOLE 

如果根本没有rdp会话,并且您仍希望通过AutoIt实现自动化,则接受的答案不起作用。

They say在这种情况下,您不应该使用WinActivate,而是在AutoIt脚本中使用ControlSend,而且它可以顺利运行。是的,这是有效的,自己检查。