python-3.4 - 在不同分辨率的不同计算机上运行 Pyautogui

标签 python-3.4 screen-resolution pyautogui

我有一个 python 脚本,可以在我的工作计算机(1600 x 900 分辨率)上完美运行。正是在这台计算机上,我拍摄了 pyautogui.locateOnScreen 使用的所有屏幕截图图像。我尝试在家用笔记本电脑上以不同的分辨率 (1340 x 640) 运行此程序,但脚本似乎找不到图像位置。我猜这是因为分辨率不同。 (我把工作电脑的脚本文件夹复制到家里的电脑上,所以图片文件的路径是完全一样的)。我可以在我的脚本中进行任何更改,以便 pyautogui.locateOnScreen 可以在任何计算机分辨率下识别图像吗?

最佳答案

我是 PyAutoGUI 的创建者。您遇到的问题不是屏幕分辨率,而是屏幕缩放。您的程序将在不同分辨率的显示器上正常运行。但是在高分辨率下,程序的文本和按钮会变得太小,因此 Windows 和 macOS 通过“屏幕缩放”解决了这个问题,这可以将文本和按钮等 UI 元素的大小增加 150% 或 200%。如果您有多个显示器,每个显示器都可以有自己的屏幕缩放设置;例如,一台显示器为 100%,另一台显示器为 150%。

如果您在显示器处于例如 100% 时截取屏幕截图,然后尝试在缩放为 200% 的显示器上使用它,图像将不匹配,因为屏幕截图实际上是宽度的一半,并且它在 200% 显示器上的长度。

到目前为止,还没有解决这个问题的方法。调整屏幕截图大小可能不起作用,因为可能存在细微差异,并且屏幕截图机制当前需要像素完美匹配。您只需使用不同的屏幕缩放设置在显示器上重新截取屏幕截图。

关于python-3.4 - 在不同分辨率的不同计算机上运行 Pyautogui,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45302681/

相关文章:

python - 如何修复 Windows 10 中的 'Pyautogui.mouseUP' 和 mouseDown 问题

python - Windows - 无法通过 pip 安装 pyautogui - 错误 : Command "python setup.py egg_info" failed with error code 1

python - 反向功能无法正常工作

Python Tkinter Entry() 计算

delphi - 获取 Delphi (DirectX) 中所有显示器的当前/ native 屏幕分辨率

selenium - 运行 Selenium WebDriver 时如何检查浏览器的分辨率

excel - 根据屏幕分辨率调整工作表缩放级别

python - 获取最终重定向的 URL

python - NoReverseMatch at/Reverse 未找到 'post_detail'

python - pyautogui:继续尝试,直到找到图像