Автоматизация клавиатуры и мыши с помощью Python

Автоматика - это сексуально !! С питоном это становится еще сексуальнее ...

Но почему?

Автоматизация - это весело и необходимо, и с развитием интеллектуальных систем она становится все более и более важной. Возможно, вам будет интересно создать бота для управления программным обеспечением с помощью мыши и клавиатуры или, может быть, вы захотите управлять мышью и клавиатурой, передавая данные с какого-либо внешнего устройства.

Но как??

Мы собираемся использовать пакет под названием pyautogui. Сегодня мы собираемся использовать его часть для работы с нашей клавиатурой и мышью (в конце я добавлю скриншоты в качестве бонуса;))

Ладно, а вот код ?? !!!

Мы займемся этим ... сначала установите pyautogui, делайте это отсюда. В этой статье я собираюсь использовать Python 3.5 в Windows 10, весь код для статьи доступен здесь.

Мы можем просто импортировать его:

import pyautogui

Следующие разделы будут посвящены изучению некоторых частей pyautogui и написанию крутых сценариев автоматизации.

Failsafes

У нас должен быть способ остановить наш скрипт на середине и вернуть контроль над нашими устройствами, иначе любая ошибка в скрипте может вызвать хаос (также мы не можем позволить злобным ботам иметь полный контроль: p)

pyautogui автоматически приостанавливает выполнение скрипта за исключением случаев, когда указатель находится в координатах (0,0). Эту функцию можно выключить или включить, установив для pyautogui.FAIL_SAFE значение True или False.

Мы также можем установить паузу между действиями, предпринимаемыми pyautogui, чтобы мы могли вернуть себе контроль в этот интервал. Мы можем установить значение, установив значение pyautogui.PAUSE как интервал в секундах.

pyautogui.FAIL_SAFE = True
pyautogui.PAUSE = 1                                                                    

Некоторые функции

Перед тем, как начать, вы должны знать несколько общих функций.

height,width = pyautogui.size()

size() размеры монитора.

position = pyautogui.position()

Это возвращает кортеж, содержащий координаты x и y текущей позиции мыши.

Система координат

Верхний левый угол экрана - (0,0), когда вы идете вправо, значения оси x увеличиваются, а когда вы спускаетесь вниз, значения оси y увеличиваются.

Управление мышью

Передвигаться

Это действительно просто, используя функцию moveTo:

pyautogui.moveTo(x_coordinate,y_coordinate,duration)

Функция moveTo принимает координаты x и y того места, куда должен идти указатель, и выполняет переход за duration секунд.

Указатель также можно переместить в положение относительно текущего положения указателя. Здесь будет взято текущее положение указателя (0,0).

pyautogui.moveRel(x_rel,y_rel,duration)

x_rel и y_rel будут координатами x и y нового местоположения указателя мыши относительно текущего положения указателя мыши.

Щелкните! Щелкните!

Щелкать так же просто, как перемещать мышь, если не проще. Функция для этого click() (очевидно)

pyautogui.click()

Это щелкнет левой кнопкой мыши в текущем местоположении указателя.

Взгляните на полный набор аргументов функции:

>>> pyautogui.click(x=moveToX, y=moveToY, clicks=num_of_clicks, interval=secs_between_clicks, button='left')

Узнайте больше о нажатии здесь и посмотрите на этот пример.

Перетащите их за указатель

Перетаскивание важно, перетаскивание - это круто, перетаскивание - это самая важная вещь в жизни ... хорошо, это было слишком далеко, но да, наша роботизированная мышь должна тянуть!

Это похоже на перемещение мыши, только в названиях функций стоит drag вместо move.

pyautogui.dragTo(x_coordinate,y_coordinate,duration)
pyautogui.dragRel(x_rel,y_rel,duration)

Как и при перемещении мыши, duration - это количество секунд для перетаскивания. В функции dragRel указаны координаты относительно текущего положения указателя мыши, взятого за начало координат.

Взгляните на этот пример.

Прокрутить прочь

Как и все остальное, прокрутка тоже проста.

pyautogui.scroll(scroll_amount, x=moveToX, y=moveToY)

scroll_amount определяет количество и направление прокрутки, положительное значение будет прокручиваться вверх, а отрицательное прокрутка - вниз.

Клавиатура поднята

Тип, тип

Первая работа клавиатуры - это набор текста (ладно, это единственная работа). Для этого мы можем использовать функцию машинного ввода.

pyautogui.typewrite("hey there",interval=no_of_seconds)

Аргумент interval занимает количество секунд между нажатиями клавиш. Вышеупомянутая функция напечатает «привет» в любом текстовом поле. Вы также можете упомянуть список, содержащий имена ключей вместо переданной строки.

pyautogui.typewrite(['backspace','backspace','i','in'],
interval=no_of_seconds)

Очевидно, backspace означает клавишу возврата на клавиатуре, полный список имен читайте здесь.

Горячие клавиши

Горячие клавиши или комбинации клавиш, такие как Ctrl+V или Ctrl+C, могут быть выполнены с помощью функции hotkey().

pyautogui.hotkey('ctrl','v')

Вышеупомянутая строка автоматизирует одновременное нажатие Ctrl и V. Имена, используемые здесь, такие же, как использование имени, указанное в разделе «Тип Тип».

Взгляните на этот пример.

Скажи сыр… Скриншоты!

Сделать снимок экрана очень просто, просто для Linux помните, что вам нужно выполнить следующую команду, чтобы использовать эти функции.

sudo apt-get install crot

Делайте скриншоты просто:

img = pyautogui.screenshot()

Это вернет объект изображения PIL. Вы также можете сделать,

img = pyautogui.screenshot('screen.png')

Вуаля, и вы сохраняете свой снимок экрана как screen.png, как и предыдущий, он возвращает объект PIL Image.

Дальнейшее обучение

  1. Пяутогая документация.
  2. Шпаргалка.

Читатели, продолжайте взламывать.

А сейчас до свидания.

Нажмите, чтобы увидеть мой канал программирования на Youtube, чтобы узнать больше !! 🤓🤓 Мне нужна твоя любовь здесь