最小化RDP(VM)时自动化脚本失败

时间:2018-11-14 10:16:42

标签: python selenium autoit sikuli

我一直面临在其中一个VM上自动执行脚本的问题。我已经自动化了“保存文档”的功能,理想情况下,该功能是Windows设计的UI。我尝试使用各种技术/工具,例如AutoIT,Python,Sikuli,但如果将VM最小化,脚本将停止。如果VM是通过RDP打开的,则可以正常运行,并且可以看到运行时执行。但是,如果我最小化RDP,脚本将在“另存为”对话框中暂停,所有发送键(Cntrl + s)或(Enter)都无法通过AutoIt脚本工作。请提供一些解决方案的帮助,以便即使在最小化模式下也能成功执行脚本。

2 个答案:

答案 0 :(得分:2)

在最小化的RDP会话上执行脚本时,脚本失败的原因非常简单。 GUI自动化/测试工具需要具有未锁定的活动桌面-否则操作系统会认为它不需要实际呈现GUI操作(这很耗时),因为没有用户可以看到呈现的图形用户界面。而且程序通常无法通过GUI进行通信...

这就是为什么QF-Test和其他GUI自动化/测试工具通常在其常见问题解答中都带有注释来描述这种问题。例如,对于QF测试,常见问题解答14,请参见https://www.qfs.de/qf-test-handbuch/lc/manual-en-faq.html

如Windows 10或Windows Server 2016上的常见问题解答14中所述,在建立RDP连接的情况下,您需要修改注册表。转到

HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client

并添加新值

RemoteDesktop_SuppressWhenMinimized as DWORD having the value 2

重新启动后,您将能够最小化RDP连接。但是,断开或关闭RDP连接可能仍会导致失败。

答案 1 :(得分:0)

您可以尝试以here的身份以管理员身份运行System.Int 32[]。这将断开您的RDP连接,但应使所有GUI程序在VM上正常运行。我个人在VM上将它与autoit一起使用,并且工作正常。当然,您将无法在脚本运行时对其进行监视,因此该脚本可能对您不起作用。