当我断开本地桌面的连接时,远程桌面上的自动热键不起作用

问题描述

我正在使用Autohotkey在我的Microsoft Azure提供的虚拟机上每十分钟重新运行Pytest。 我的.ahk脚本很简单。

loop
{
Send !{F10}
Sleep,600000
}

Im连接到远程桌面时,脚本可以完美运行。但是,如果我退出全屏或与之断开连接,则无法正常工作。 Autohotkey继续运行,但是由于某种原因而没有注册Send !{F10}。只有当我重新连接上它时,它才开始注册。请帮忙。

解决方法

Autohotkey not functioning properly on minimized virtual machines是一个已经存在了一段时间的问题,

(关于虚拟机):

RemoteAdmin服务器进程应远程请求启动程序 用户(您)。所以R.A.是AHK的父流程。一旦最小化 您的RA会话客户端会向RA服务器发出信号。 RA服务器认为 现在,由于最小化了客户端,因此它不需要任何东西,并且 消耗CPU能量会停止自身及其子级的任何活动 流程。 -wOxxOm

在其他AHK功能的文档中,例如WinActivate

已知问题:如果脚本在正在运行的计算机或服务器上运行 通过远程桌面访问,如果远程启动WinActivate可能会挂起 桌面客户端已最小化。一种解决方法是使用命令 不需要激活窗口,例如ControlSend和ControlClick。 另一个可能的解决方法是应用以下注册表设置 在本地/客户端计算机上:

; Change HKCU to HKLM to affect all users on this system.
RegWrite REG_DWORD,HKCU,Software\Microsoft\Terminal Server Client,RemoteDesktop_SuppressWhenMinimized,2

^^上述注册表更改也可能会解决您的问题^^

论坛线程针对此问题提供了几种不同的解决方法,但是如果您在尝试在计算机上进行其他操作时试图将VM置于不干扰的位置,那么我认为可以做到的最小花招解决方案将通过使用 Win + Tab 快捷方式或通过using this guide将主机上的“虚拟机”窗口移至虚拟桌面。 。通过将窗口移至虚拟桌面,虚拟机将以不会被最小化的方式移开,从而使其能够继续运行AHK脚本。此外,您可以使用 Ctrl + Win + Ctrl + 在虚拟桌面之间快速导航Win + 快捷键。