перейдите к разделу « Начало работы », если не хотите знать об используемом модуле и его установке.

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

Цель PyAutoGUI - предоставить кроссплатформенный модуль Python для автоматизации графического интерфейса для людей. API спроектирован так, чтобы быть максимально простым с разумными значениями по умолчанию. Я коснусь только основ этого модуля, остальные атрибуты и функции вы можете найти в документации модуля PyAutoGUI в PyPI.

Установка:

Windows:

В Windows гораздо проще установить и использовать PyAutoGUI. В Windows вы можете установить его из PyPI с помощью pip, если у вас установлен pip.

pip install pyautogui

Os X:

В Os X вам необходимо установить несколько дополнительных модулей, чтобы иметь возможность запускать PyAutoGui.

pip3 install pyobjc-core
pip3 install pyobjc
pip3 install pyautogui

Linux:

В Linux вам необходимо установить несколько пакетов.

pip3 install python3-xlib
sudo apt-get install scrot
sudo apt-get install python3-tk
sudo apt-get install python3-dev
pip3 install pyautogui

Начиная:

Если вы хотите создать невероятный автоматизированный инструмент, вы можете интегрировать этот модуль в другие замечательные модули, такие как Selenium, OpenCV и т. Д.

Используя PyAutoGUI, вы можете делать следующее.

Сбой-сейфы:

  • "Безопасность"

Особенности мыши:

Особенности клавиатуры:

Функции окна сообщения:

Функции снимков экрана (поиск изображений):

"Другие особенности:"

Отказоустойчивые сейфы:

Пауза:

Пауза - это опция в PyAutoGUI, которая устанавливает паузу между каждым вызовом модуля. Например: у нас есть две функции: одна запись и другие щелчки, вторая функция выполняется по истечении заданного времени при установке этой опции.

pyautogui.PAUSE = dur # 2.5

Отказоустойчивый:

Этот параметр больше похож на отмену программы с помощью CTRL + C. Если для этого параметра установлено значение Истина, программа прерывается и генерируется pyautogui.FailSafeException Exception, перемещая мышь в верхний левый угол экрана.

pyautogui.FAILSAFE = True

Особенности мыши:

Движение мыши:

Вы можете переместить мышь в координаты x, y экрана, используя следующую функцию класса pyautogui

pyautogui.moveTo(x, y, duration=num_seconds)

где x и y - координаты XY на экране. X увеличивается при движении вправо, Y увеличивается при движении вниз. продолжительность - это время в секундах, которое замедляет движение мыши в зависимости от времени.

Существует еще одна функция, которая перемещает мышь относительно текущего положения мыши, что просто означает, что она будет перемещать мышь (100,100) влево и вправо от того места, где находится текущее положение мыши.

pyautogui.moveRel(xOffset, yOffset, duration=num_seconds)
# you can use pyautogui.move(xOffset, yOffset) as well

Здесь xOffset и yOffset - это приращения к текущему положению мыши x и y соответственно.

Перетаскивание:

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

pyautogui.dragTo(x, y, duration=num_seconds)
pyautogui.dragRel(xOffset, yOffset, duration=num_seconds)
# you can use pyautogui.drag(xOffset, yOffset) as well

Объяснение этих функций такое же, как и движение мыши.

Клики:

Как вы знаете, есть разные типы щелчков мышью, которые мы можем выполнять вручную. PyAutoGUI позволяет нам использовать многие из этих функций. Некоторые из них:

  • Одиночный, двойной и тройной щелчок
  • Кнопка мыши вверх и вниз Событие
  • Левый, правый и средний щелчок

Синтаксис:

pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button='left', duration=0.0)

Вы можете использовать функцию click() следующим образом:

pyautogui.click()  # click the mouse at current position
pyautogui.click(20,10)  # move to 20, 10, then click the left mouse button
# you can pass a Tuple as well (20,10)
pyautogui.click(button='right')  # right-click the mouse
pyautogui.click(button='middle')  # middle-click the mouse
pyautogui.click(button='left')  # left-click the mouse
# You can pass it with the above as well
pyautogui.click(clicks=2)  # double-click the left mouse button
pyautogui.click(clicks=2, interval=0.25)  # double-click the left mouse button, but with a quarter second pause in between clicks
pyautogui.click(button='right', clicks=3, interval=0.25)  ## triple-click the right mouse button with a quarter second pause in between clicks

есть также отдельные функции для выполнения той же работы.

pyautogui.doubleClick()# perform a left-button double click
pyautogui.rightClick()# perform a right-button click
pyautogui.middleClick()# perform a middle-button click
pyautogui.trippleClick()# perform a left-button triple click
Have more Optional Attributes for each Functions such as x and y coordinates, duration, and interval.

Щелчки и перетаскивание мышью состоят как из нажатия кнопки мыши, так и ее возврата. Если вы хотите выполнить эти действия по отдельности, вызовите функции mouseDown() и mouseUp(). У них одинаковые x, y и button.

pyautogui.mouseDown(); pyautogui.mouseUp()  # does the same thing as a left-button mouse click
pyautogui.mouseDown(button='right')  # press the right button down
pyautogui.mouseUp(button='right', x=100, y=200)  # move the mouse to 100, 200, then release the right button up.

Прокрутка:

Колесо прокрутки мыши можно смоделировать, вызвав функцию scroll() и передав целое число «щелчков» для прокрутки. Количество прокрутки за «клик» зависит от платформы.

Синтаксис:

pyautogui.scroll(clicks, x=None, y=None)

Вы можете использовать функцию scroll() следующим образом:

pyautogui.scroll(10)   # scroll up 10 "clicks"
pyautogui.scroll(-10)  # scroll down 10 "clicks"
pyautogui.scroll(10, x=100, y=100)  # move mouse cursor to 100, 200, then scroll up 10 "clicks"

Вы можете использовать hscroll() для прокрутки влево и вправо в Linux и на платформе OSX.

Особенности клавиатуры:

Письмо:

Вы можете написать алфавит, слово или предложение с помощью функции в классе pyautogui. Он также предлагает задержку между вводом каждого слова, что делает его более фантастическим.

pyautogui.typewrite('Hello world!') # prints out "Hello world!" instantly

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

pyautogui.typewrite('Hello world!', interval=0.25)
# prints out "Hello world!" with a quarter second delay after each character

Нажатие клавиш:

Чтобы нажать эти клавиши, вызовите функцию press() и передайте функции определенные значения в строке.

Чтобы нажать более одной клавиши, передать кортеж или список клавиш, также требуется другой необязательный атрибут presses=1 , который ограничивает количество нажатий клавиши (ей).

Также есть еще один атрибут interval=0.0, который представляет собой интервал между каждым нажатием клавиши.

Ключи для этой функции определены и могут быть получены с помощью следующей опции pyautogui.KEYBOARD_KEYS. Он напечатает список определенных ключей, которые он поддерживает. Например: enter, up, down, esc, f1. См. KEYBOARD_KEYS.

pyautogui.press('enter')  # press the Enter key
pyautogui.press('f1')     # press the F1 key
pyautogui.press('left')   # press the left arrow key

press() - это просто оболочка для функцийkeyUp() и keyDown(), которые имитируют нажатие клавиши с последующим ее отпусканием.

pyautogui.keyDown('shift')  # hold down the shift key
pyautogui.keyUp('shift')    # release the shift key

Нажатие ярлыков:

Чтобы было удобно нажимать горячие клавиши или сочетания клавиш, hotkey() можно передать несколько цепочек клавиш, которые будут нажиматься по порядку, а затем отпускаться в обратном порядке.

pyautogui.hotkey('ctrl', 'shift', 'esc') # press CTRL + SHIFT + ESC at the same time

Приведенный выше код эквивалентен

pyautogui.keyDown('ctrl')     # Hold CTRL button
pyautogui.keyDown('shift')    # Hold SHIFT button
pyautogui.keyDown('esc')      # Hold ESC button
pyautogui.keyUp('esc')        # Release ESC button
pyautogui.keyUp('shift')      # Release SHIFT button
pyautogui.keyUp('ctrl')       # Release CTRL button

Функции окна сообщений:

PyAutoGUI также отображает окна сообщений в стиле JavaScript. Предусмотрены четыре функции окна сообщений:

Окно предупреждения:

Отображает простое окно сообщения с текстом и единственной кнопкой ОК. Возвращает текст нажатой кнопки.

pyautogui.alert(text='', title='', button='OK')

Окно подтверждения:

Отображает окно сообщения с кнопками ОК и Отмена. Количество и текст кнопок можно настроить. Возвращает текст нажатой кнопки.

pyautogui.confirm(text='', title='', buttons=['OK', 'Cancel'])

Окно подсказки:

Отображает окно сообщения с вводом текста и кнопками OK и Отмена. Возвращает введенный текст или «Нет», если была нажата «Отмена».

pyautogui.prompt(text='', title='' , default='')

Окно пароля:

Отображает окно сообщения с вводом текста и кнопками OK и Отмена. Набранные символы отображаются как *. Возвращает введенный текст или «Нет», если была нажата «Отмена».

password(text='', title='', default='', mask='*')

Функции снимков экрана (поиск изображений):

PyAutoGUI может делать снимки экрана, сохранять их в файлы и находить изображения на экране. Это полезно, если у вас есть небольшое изображение, скажем, кнопки, которую нужно нажать, и вы хотите разместить ее на экране.

Сделайте снимок экрана:

Вызов screenshot() вернет объект Image. Передача строки имени файла сохранит снимок экрана в файл, а также вернет его как объект Image.

im1 = pyautogui.screenshot()
im2 = pyautogui.screenshot('my_screenshot.png')

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

im = pyautogui.screenshot(region=(0,0, 300, 400))

Найдите изображение на экране:

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

и у вас есть изображение кнопки, например изображение кнопки 7:

вы можете вызвать функцию locateOnScreen('7key.png'), чтобы получить координаты экрана. Возвращаемое значение - 4-целочисленный кортеж: (слева, сверху, ширина, высота). Однако, если вам просто нужны координаты x и y изображения на экране, вы можете вызвать locateCenterOnScreen(), который вернет только x и y координаты. Если изображения на экране не найти, оно поднимется ImageNotFoundException. Если вы хотите щелкнуть это изображение или объект, просто передайте координаты x и y из значений, возвращаемых предыдущими функциями, в click() функцию. Чтобы узнать больше о поиске объектов на экране, перейдите по этой ссылке.

Другие особенности:

Размер экрана:

Чтобы получить размер экрана, PyAutoGUI имеет функцию size(), которая возвращает кортеж целых чисел: (ширина, высота) для размера основного монитора.

pyautogui.size()    # output: Size(width=1366, height=768)

Положение курсора:

Чтобы получить текущую позицию курсора, PyAutoGUI имеет функцию position(), которая возвращает кортеж целых чисел: (x, y) для текущей позиции курсора мыши.

pyautogui.position()    # outpu: Point(x=487, y=664)

Кредиты:

📝 Прочтите этот рассказ позже в Журнале.

👩‍💻 Просыпайтесь каждое воскресное утро и слышите самые интересные истории недели в области технологий, ожидающие в вашем почтовом ящике. Прочтите информационный бюллетень« Примечательные в технологиях ».