我用python写了一个脚本,我想在服务器上运行它。我使用windows远程连接来连接到此服务器,但我遇到了问题。
我想运行Image Grab在一天中的特定时间进行截图。我正在使用Pyautogui包进行屏幕截图。但当程序运行时,会发生错误,程序停止执行。
我有以下代码,我正在使用它来捕获远程桌面(RDP(会话中的屏幕截图。
import pyautogui
import time
def imagegrab():
timedata = time.localtime()
current_time = time.strftime("%H:%M", timedata)
if (current_time == "10:00" and current_time == "12:00"):
image=pyautogui.screenshot()
image.save("box.png")
t = threading.Timer(30.0, imagegrab)
t.start()
print("thread calling.")
print(imagegrab())
但它抛出OSError:如果此时远程屏幕最小化,则屏幕抓取失败。如何解决这个问题?还有其他可能的方法来捕捉最小化远程桌面的屏幕吗。
提前谢谢。
根据Ranorex团队在这篇文章中的说法,当RDP最小化时,它会被屏幕锁定,无法进行捕获。提供的解决方案是在您的计算机和测试计算机/服务器之间使用VM。您通过RDP连接到虚拟机,然后从虚拟机通过RDP与测试计算机/服务器连接。这样,当您从不最小化虚拟机上的测试计算机/服务器窗口时,您可以最小化计算机上的虚拟机窗口。
我做了一个测试,结果没有任何问题。我不会肯定这种解决方案适用于所有情况,但这似乎是一个良好的起点。
注意,中间虚拟机不需要是一台杀手机器。。。它只需要足够强大就可以运行RDP。