Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность
до начала
Перед запуском установите необходимые модулиpyautogui
,pyautogui
модули могутWindows
Отправляйте виртуальные клавиши и щелчки мыши.
pip install -i https://pypi.douban.com/simple pyautogui
Проверьте размер экрана
pyautogui.size()
Получите ширину и высоту экрана в пикселях (целое число).
>>> pyautogui.size()
Size(width=1920, height=1080)
# 也可以直接将宽,高进行保存 x, y = pyautogui.size()
Получить текущую позицию мыши
Функция возвращает кортеж координат X, Y текущей позиции.Если заданы параметры x, y, возвращаемый результат будет перезаписан.
>>> pyautogui.position(x=None, y=None)
Point(x=1437, y=817)
Проверить, есть ли указанные координаты на экране
Чтобы проверить, есть ли координаты X,Y на экране, передайте их (поддерживаются два целых числа, списки, кортежи) вonScreen()
функция, которая возвращает, если они находятся в пределах экранаTrue
, иначе возвратFalse
.
>>> pyautogui.size()
(1920, 1080)
>>> pyautogui.onScreen(1920, 1080)
False
>>> pyautogui.onScreen(1919, 1079)
True
Установить время паузы
использоватьpyautogui.PAUSE
Переменная устанавливает количество секунд для паузы. Например, в настройкеpyautogui.PAUSE = 1
После этого каждыйPyAutoGUI
Вызов функции ожидает одну секунду после выполнения действия.
>>> pyautogui.PAUSE = 1
функция мыши
двигай мышь
Переместите мышь в указанное место.
pyautogui.moveTo(x=None, y=None, duration=0.0) # Переместите мышь в указанную позицию pyautogui.move(xOffset=None, yOffset=None, duration=0.0) # В PyAutoGUI 1.0 move заменяет moveRel, но может также использоваться moveRel
pyautogui.moveTo(200, 300, duration=0.5) # 移动到坐标(200,300)
pyautogui.move(200, 300, duration=0.5) # 从当前鼠标位置向右移动 200 向下移动 300
Основные параметры параметры:
x/xOffset: координата по оси X,moveTo()
принимает значение 0 или положительное целое значение,move()/moveRel()
Значение в середине может быть отрицательным, что означает перемещение влево в текущей позиции.
y/yOffset: координата оси Y,moveTo()
принимает значение 0 или положительное целое значение,move()/moveRel()
Значение в середине может быть отрицательным, что означает движение вверх с текущей позицией.
duration: время, необходимое для перемещения к указанной координате, по умолчанию 0, что означает немедленное завершение, единица измерения - с.
Щелчок мышью
использоватьclick()
Завершите операцию щелчком мыши.
>>> pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button=PRIMARY, duration=0.0)
Основные параметры:
x: Координата по оси X, по умолчаниюNone
, то есть текущая координата оси X
y: Координата оси Y, по умолчаниюNone
, то есть текущие координаты оси Y (Примечание: координаты оси X и оси Y можно указывать только одновременно, а не только одну)
clicks: количество кликов мышью, по умолчанию 1
interval: int или float, указывающее, сколько секунд ждать между каждым кликом, по умолчанию 0.0, что означает отсутствие паузы между кликами
button: по желаниюLEFT
,MIDDLE
,RIGHT
,PRIMARY
(щелкните левой кнопкой мыши) илиSECONDARY
(правый клик). Его значение по умолчаниюPRIMARY
duration: Если указаны значения X, Y, а координаты не являются текущим положением мыши, тоduration
Параметр может вступить в силу, он представляет собой время, необходимое для перемещения к указанной координате, по умолчанию 0, что означает немедленное перемещение.
:speech_balloon: Другие операции кликов:
pyautogui.mouseDown() # 按下鼠标按键(左键)
pyautogui.mouseUp() # 释放鼠标按键(左键)
перетаскивание мышью
Удерживайте клавишу мыши для перетаскивания.
pyautogui.dragTo(x=None, y=None, duration=0.0, button=PRIMARY) # 将鼠标拖动到指定位置
pyautogui.drag(xOffset=0, yOffset=0, duration=0.0, button=PRIMARY) # 将鼠标拖动到屏幕上相对于当前位置的一个点。
Основные параметры:
x, y/xOffset, yOffset: x и y указывают, где произошло событие мыши. еслиNone
, используется текущая позиция мыши. Если это значение с плавающей запятой, оно округляется. Если за пределами экрана, событие происходит на краю экрана.
duration: Если указаны значения X, Y, а координаты не являются текущим положением мыши, тоduration
Параметр может вступить в силу, он представляет собой время, необходимое для перемещения к указанной координате, по умолчанию 0, что означает немедленное перемещение.
button: по желаниюLEFT
,MIDDLE
,RIGHT
,PRIMARY
(щелкните левой кнопкой мыши) илиSECONDARY
(правый клик). Его значение по умолчаниюPRIMARY
:arrow_forward: Пример:
прокрутка мыши
Вертикальная прокрутка, эффект от прокрутки на разных платформах может быть разным.
>>> pyautogui.scroll(100) # 向上滚动100
>>> pyautogui.scroll(-100) # 向下滚动100
>>> pyautogui.scroll(100, x=200, y=200) # 移动到200, 然后执行滚动
горизонтальная прокрутка, (применяется кOS X
иLinux
на платформе).
>>> pyautogui.hscroll(100) # 向右滚动100
>>> pyautogui.hscroll(-100) # 向左滚动100
:arrow_forward: Пример:
функция экрана
Функция скриншота
использоватьscreenshot()
функция для реализации функции скриншота. перечислитьscreenshot()
вернетImage
объект. При передаче строки имени файла снимок экрана будет сохранен в файл какImage
Объект возвращен. пройти черезregion
аргументы ключевого слова для захвата указанной области, просто передайтеleft
, top
, width
, height
состоящий из кортежей (left
,top
верхняя левая координата).
>>> import pyautogui
>>> pyautogui.screenshot()
>>> pyautogui.screenshot(r'C:\Users\pc\Desktop\test.png')
>>> pyautogui.screenshot(r'C:\Users\pc\Desktop\test.png', region=(300, 300, 500, 1000))
GPS
Если вы не знаете точных координат на экране того, что вы хотите нажать, вы не можете позвонитьmoveTo()
иclick()
функция. Однако, если есть изображение кнопки, такое как изображение ниже, его можно вызватьlocateOnScreen('图片路径')
Функция для получения координат. Возвращаемое значение представляет собой кортеж: (слева, сверху, ширина, высота). Этот кортеж можно передатьcenter()
чтобы получить координаты (X,Y) центра области. Если изображение не найдено на экране,locateOnScreen()
вызоветImageNotFoundException
аномальный.
>>> location = pyautogui.locateOnScreen('图片路径')
>>> pyautogui.center(location)
так же может бытьgrayscale=True
Перейти кlocateOnScreen
, для небольшого ускорения (около 30%). Это снижает насыщенность цветов изображений и скриншотов, ускоряя локализацию, но может привести к ложным совпадениям.
функция окна сообщения
PyAutoGUI
использоватьPyMsgBox
Функция окна сообщения в обеспечивает кросс-платформенный чистыйPython
способ отображенияjavascript
стиль окна сообщения.
функция оповещения()
>>> pyautogui.alert(text='text', title='title', button='alert!')
'alert!'
Отображает простое окно сообщения с текстом иalert!
кнопка. Назад после нажатия кнопкиbutton
значение .
:arrow_forward: Пример:
функция подтверждения()
Отображает окно сообщения с несколькими кнопками. Количество и текст кнопок можно задать самостоятельно. Щелчок по кнопке возвращает текст кнопки.
>>> pyautogui.confirm(text='text', title='title', buttons=['再考虑一下', '卸载'])
'卸载'
:arrow_forward: Пример:
функция подсказки()
Отображает окно сообщения с кнопками «ОК», «Отмена» и полем ввода текста, где пользователь может ввести определенное содержимое. При нажатии кнопки подтверждения вернуть значение в поле ввода; при нажатии кнопки «Отмена» вернутьNone
.
pyautogui.prompt(text='text', title='title', default='请输入文本信息')
:arrow_forward: Пример:
функция пароль()
Отображает окно сообщения с кнопками «ОК», «Отмена» и поле ввода текста с символами, введенными как «*». Возвращает введенный текст, если нажата кнопка «ОК» или если нажата кнопка «Отмена».None
.
pyautogui.password(text='text', title='title', default='密码', mask='*')
:arrow_forward: Пример:
Функция управления клавиатурой
функция записи()
write()
Функция будет вводить символы в переданной строке. Чтобы добавить интервал задержки между каждым нажатием символьной клавиши,interval
Параметр может быть установлен для добавления задержки между каждым нажатием клавиши.
>>> pyautogui.write('Hello world!', interval=0.25) # 每个字符间隔0.25秒
Примечание: pyautogui не поддерживает автоматический фокус поля ввода.Перед вводом всего щелкните положение поля ввода.
функция нажатия()
press()
Операция, выполняемая функцией, эквивалентна операции мыши.click()
, который получает переданную ему строку.
press('num0', presses=1, interval=0.0)
- keys: входящая строка клавиатуры
- presses: количество клавиш управления, по умолчанию — один раз.
- interval: Интервал времени каждого нажатия клавиши, по умолчанию 0
keys
Все значения следующие:
['\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+',
',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';'
, '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd',
'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't'
, 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 'accept', 'add', 'alt',
'altleft', 'altright', 'apps', 'backspace', 'browserback', 'browserfavorites',
'browserforward', 'browserhome', 'browserrefresh', 'browsersearch','browserstop'
,'capslock', 'clear', 'convert', 'ctrl', 'ctrlleft','ctrlright', 'decimal',
'del', 'delete', 'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute',
'f1', 'f10', 'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2'
, 'f20', 'f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9'
, 'final', 'fn', 'hanguel', 'hangul','hanja', 'help', 'home', 'insert', 'junja'
, 'kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail', 'launchmediaselect'
, 'left', 'modechange', 'multiply', 'nexttrack', 'nonconvert'
, 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6', 'num7'
, 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn', 'pgup'
, 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn', 'prtsc'
, 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator', 'shift'
, 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab', 'up'
, 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen'
, 'command', 'option', 'optionleft', 'optionright']
функция горячей клавиши()
Получите несколько строковых параметров, нажмите их последовательно и отпустите в обратном порядке.
pyautogui.hotkey('ctrl', 'shift', 'esc')
相当于
pyautogui.keyDown('ctrl') # 按下 ctrl
pyautogui.keyDown('shift') # 按下 shift
pyautogui.keyDown('esc') # 按下 esc
pyautogui.keyUp('esc') # 释放 ctrl
pyautogui.keyUp('shift') # 释放 shift
pyautogui.keyUp('ctrl') # 释放 esc
:arrow_forward: Пример:
Давайте пока разберемся здесь, если вам удобно,❤ Не забудьте поставить лайк! ! ! ❤
Я продолжу делиться статьями об анализе данных и в будущем, если вам интересно, вы можете кликнуть по ней и не потеряться~.
Для началаPython
Или хотите начатьPython
друзей, вы можете искать на WeChat [Python新视野
], чтобы общаться и учиться вместе, все исходят от новичков, иногда простой вопрос застревает надолго, но, может быть, кто-то другой вдруг поймет это с небольшой помощью.Я искренне надеюсь, что все вместе смогут добиться прогресса.