正如标题所示,我试图让运行在 VMWare 6.5 上的虚拟机模拟屏幕,即使没有人连接到它。我们正在 VM 上运行使用 python 模块的脚本pyautogui通过屏幕截图功能,自动定位屏幕上的图像来执行任务。当没有人连接到虚拟机时,它会立即失败,原因是“屏幕截图失败”
import pyautogui
import time
def testRun():
print('Screenshot in 15 seconds:')
time.sleep(15)
pyautogui.screenshot()
if __name__ == "__main__":
testRun()
运行此 python 代码片段后,如果无人查看虚拟机,则会失败,但若有客户端连接,则会成功。
Traceback (most recent call last):
File "C:\###\test.py", line 11, in <module>
testRun()
File "C:\####\test.py", line 8, in testRun
pyautogui.screenshot()
File "C:\###\Python37\lib\site-packages\pyscreeze\__init__.py", line 349, in _screenshot_win32
im = ImageGrab.grab()
File "C:\###\Python37\lib\site-packages\PIL\ImageGrab.py", line 41, in grab
size, data = grabber()
OSError: screen grab failed
虽然我不能 100% 肯定这是由于虚拟机在无人连接时不呈现屏幕造成的,但我相信这是导致我的问题的原因。
有人知道如何强制虚拟机渲染屏幕吗?我是 VMWare 新手,所以任何帮助我都非常感谢。
提前谢谢你,丹尼尔。