保持远程桌面会话“活动”[关闭]

Posted

技术标签:

【中文标题】保持远程桌面会话“活动”[关闭]【英文标题】:Keeping remote desktop session "alive" [closed] 【发布时间】:2011-07-28 13:21:49 【问题描述】:

我正在使用 AutoIt 来自动化 GUI 操作(使用 RDP 连接到运行待自动化应用程序的机器)。每当我最小化 RDP 窗口(使用 mRemote)时,都不会再执行 AutoIt 命令。

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

    以提升的用户(或服务)身份运行我的进程。 找到这个控制会话是否被标记为非活动并覆盖它的配置。

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

【问题讨论】:

【参考方案1】:

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

    您使用 RD 连接到 server。 从步骤 1 的 RD,您再次连接到 server

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

【讨论】:

@liortal 是的,这是真的。我想这与窗口的绘制方式有某种关系:如果窗口当前不可见,它将不会收到WM_PAINT 消息。当您最小化远程桌面窗口时,它不再可见,因此不会被绘制;此外,它不接收鼠标事件:毕竟远程桌面与您的客户端桌面共享鼠标。【参考方案2】:

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

TSCON sessionid | sessionname /DEST:CONSOLE

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

They say 在这种情况下,您不应该使用 WinActivate 而是在 AutoIt 脚本中使用 ControlSend,它会顺利运行。是的,这行得通,我自己检查过。

【讨论】:

以上是关于保持远程桌面会话“活动”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

怎么取消远程桌面连接,关闭的时候弹出“断开连接终端服务会话”框

Windows 2008 关闭远程桌面的单用户多会话模式

远程登陆最小化或关闭 模拟键盘操作失效

windows服务器如何开启远程桌面

检测远程桌面连接

Win7 远程桌面 错误代码:5 异常处理(您的远程桌面会话即将结束 此计算机的虚拟内存可能不足。请关闭其他程序,然后重试连接远程计算机。如果问题仍然存在,请联系网络管理员或技术支持。)