Взаимодействовать с ПК в Python (мышь + скриншот) - PullRequest
0 голосов
/ 01 марта 2019

Я пишу бота, который взаимодействует с компьютером.Вкратце я делаю следующее:

- сделать снимок экрана - распознать объект (с помощью cv2 matchTemplate) на этом снимке экрана
- выполнить какое-либо действие мыши с использованием найденной позиции (пример: переместить указатель мыши)на значке, найденном в предыдущей точке)
- перезапуск с первой точки

Теперь мне нужно взаимодействовать с некоторым движущимся объектом на экране, и поэтому мне нужен быстрый способ сделать снимок экрана,или альтернативный способ сделать эту работу, что я могу сделать?

1 Ответ

0 голосов
/ 01 марта 2019

Вы можете использовать модуль 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)

Как указано на их сайте:

На экране 1920 x 1080 вызовы функции локации занимают около 1 или 2 секунд.Это может быть слишком медленно для экшн-видеоигр, но работает для большинства целей и приложений.

Так что имейте это в виду.

...