Привет всем! В продолжение записи, посвященной азам работы с библиотекой автоматизации действий PyAutoGUI (в этой записи я сделал описание этой прекрасной библиотеки, рассматривал общие примеры + приводил примеры работы с мышкой) — пришла пора (угу, почти спустя год) написать о методике работы с клавиатурой. Поехали!
Основная функция работы клавиатуры — ввод символов в нужной строке. Делается это следующим образом:
pyautogui.write(‘Hello, World!’)
Если же вам нужно ввести текст с неким интервалом — добавим интервал в команду:
pyautogui.write(‘Hello, World!’, interval = 0.50)
С вводом текста разобрались. А как быть, если нужно нажать какие-либо клавиши? Для этого используем метод press():
pyautogui.press(‘enter’) #Нажимаем клавишу «Ввод» pyautogui.press(‘f1’) #Нажимаем клавишу F1 pyautogui.press(‘left’) #Нажимаем клавишу «Влево»
Интересно, что функция press() — лишь обертка для функций KeyDown() и KeyUp(), которые имитируют нажатие на клавишу, а потом отпуск этой клавиши.
ЛУЧШИЙ АВТОКЛИКЕР НА КЛАВИАТУРУ! АВТОКЛИКЕР НА КЛАВИАТУРУ
НО! В случае необходимости можно имитировать эти действия самостоятельно:
pyautogui.keyDown(‘shift’) #Нажимаем клавишу «Shift» pyautogui.press(‘left’) #Нажимаем клавишу «Влево» pyautogui.press(‘left’) #Нажимаем клавишу «Влево» pyautogui.press(‘left’) #Нажимаем клавишу «Влево» pyautogui.
keyUp(‘shift’) #Отпускаем клавишу «Shift»
Ок, с этим разобрались, едем далее. Теперь разберемся, как оптимизировать все написанное выше (согласитесь, описывать каждое нажатие клавиш — крайне неудобно). Делаем следующее:
pyautogui.press([‘left’, ‘left’, ‘left’]) #Нажали клавишу «Влево» три раза подряд
а можно сделать так:
pyautogui.press(‘left’, presses=3) #Нажали клавишу «Влево» три раза подряд 😉 Согласитесь — этот вариант как-то попроще.
Кстати, ничего не мешает удерживать одну клавишу, и нажимать другую. Реализуется это двумя методами. Первый:
with pyautogui.hold(‘shift’): pyautogui.press([‘left’, ‘left’, ‘left’]) #На нормальном языке это значит следующее: когда клавиша Shift зажата — три раза нажимаем клавишу «Влево»
Две строки — но на деле они заменяют код, написанный ниже:
pyautogui.keyDown(‘shift’) #Нажать клавишу «Shift» pyautogui.press(‘left’) #Нажать клавишу «Влево» pyautogui.press(‘left’) #Нажать клавишу «Влево» pyautogui.press(‘left’) #Нажать клавишу «Влево» pyautogui.keyUp(‘shift’) #Отпустить клавишу «Shift»
И в конце сегодняшей записи, посвященно работе с клавиатурой с помощью библиотеки Pyautogui расскажу, как реализовать нажатие нескольких клавиш по указанной схеме. Для этого используется метод hotkey(). Пример — ниже:
pyautogui.hotkey(‘ctrl’, ‘shift’, ‘esc’)
Одна строка! Элементарно, Ватсон! А если бы мы описывали это с помощью простых нажатий клавиш — нам пришлось бы писать код:
pyautogui.keyDown(‘ctrl’) pyautogui.keyDown(‘shift’) pyautogui.keyDown(‘esc’) pyautogui.keyUp(‘esc’) pyautogui.keyUp(‘shift’) pyautogui.
keyUp(‘ctrl’)
Кстати, интервал в нажатии клавиш никто не отменяет Напоминаю: interval=0.25 — интервал между нажатиями клавиш в милисекундах.
На всякий случай — ниже укажу полный список всего, что можно использовать методаз, описанных сегодня (press(), keyDown(), keyUp(), hothey()):
На этом все что я хотел рассказать сегодня о работе с клавиатурой с помощью библиотеки Pyautogui в Python — заканчивается. Продолжение — скоро (раньше, чем через год, обещаю). И как всегда — в случае возникновения вопросов пишите на почту, или в Телеграм
UPD: видео
Источник: lavrynenko.com
Автокликер на любую клавишу
За пару минут вы запустите свой кликер по клавишам. Когда понадобилось автоматом нажимать на кнопки клавиатуры, нормального решения в сети именно для клавиш я так и не нашел и случайно нашел ролик на Ютубе вот с этим.
AHK: Авто нажатие ЛКМ
Здравствуйте, нужна программа для того чтобы не клацать ЛКМ постоянно, а просто зажать ее чтобы действие повторялось,(быстрое нажатие ЛКМ) отпустишь ЛКМ действие прекращается, если и кто умеет напишите скрипт для AutoHotkey
з.ы Заранее благодарен.
2 Ответ от teadrinker 2011-09-23 12:47:05
- teadrinker
- Администратор
- Неактивен
Re: AHK: Авто нажатие ЛКМ
size222, прочитай первую тему на странице, отредактируй название.
Источник: forum.script-coding.com