如何解决屏幕捕获失败,因为它最小化了python中的远程桌面连接
我使用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:屏幕抓取失败。 如何解决这个问题?还有其他可能的方法来捕获最小化远程桌面的屏幕。
谢谢。
解决方法
根据 this post 中的 Ranorex 团队的说法,当 RDP 最小化时,它会被屏幕锁定并且无法进行捕获。提供的解决方案是在您的计算机和测试计算机/服务器之间使用 VM。您通过 RDP 连接到 VM,然后从 VM 通过 RDP 连接到测试计算机/服务器。这样,虽然您从不最小化 VM 上的测试计算机/服务器窗口,但您可以最小化计算机上的 VM 窗口。
我进行了测试,它没有任何问题。我不会肯定这个解决方案适用于所有情况,但它似乎是一个很好的起点。
请注意,中间 VM 不需要成为杀手级机器……它只需要足够强大以运行 RDP。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。