在python中与电脑互动(鼠标+截图)
Interact with pc in python (mouse+screenshot)
我正在编写一个与电脑交互的机器人。简而言之,我所做的是:
-截屏
- 在此屏幕截图上识别对象(使用 cv2 matchTemplate)
-使用找到的位置进行一些鼠标操作(例如:将鼠标指针移动到上一点找到的图标上)
-从第一点重新开始
现在,我必须与屏幕上移动的一些对象进行交互,因此我需要一种快速截取屏幕截图的方法,或者一种替代方法来完成这项工作,我该怎么办?
您可以使用模块 PyAutoGUI!
有截图功能:
pyautogui.screenshot('my_screenshot.png')
鼠标移动和点击:
pyautogui.moveTo(100, 200)
pyautogui.click()
以及屏幕上的基本图像位置:
button_location = pyautogui.locateOnScreen('button.png')
因此,如果您想单击屏幕上的某个图像,您可以 运行:
x, y = pyautogui.locateCenterOnScreen('form_button.png') # Gets coords of center of image
pyautogui.click(x, y)
如他们网站上所述:
On a 1920 x 1080 screen, the locate function calls take about 1 or 2
seconds. This may be too slow for action video games, but works for
most purposes and applications.
所以记住这一点。
我正在编写一个与电脑交互的机器人。简而言之,我所做的是:
-截屏
- 在此屏幕截图上识别对象(使用 cv2 matchTemplate)
-使用找到的位置进行一些鼠标操作(例如:将鼠标指针移动到上一点找到的图标上)
-从第一点重新开始
现在,我必须与屏幕上移动的一些对象进行交互,因此我需要一种快速截取屏幕截图的方法,或者一种替代方法来完成这项工作,我该怎么办?
您可以使用模块 PyAutoGUI!
有截图功能:
pyautogui.screenshot('my_screenshot.png')
鼠标移动和点击:
pyautogui.moveTo(100, 200)
pyautogui.click()
以及屏幕上的基本图像位置:
button_location = pyautogui.locateOnScreen('button.png')
因此,如果您想单击屏幕上的某个图像,您可以 运行:
x, y = pyautogui.locateCenterOnScreen('form_button.png') # Gets coords of center of image
pyautogui.click(x, y)
如他们网站上所述:
On a 1920 x 1080 screen, the locate function calls take about 1 or 2 seconds. This may be too slow for action video games, but works for most purposes and applications.
所以记住这一点。