Руководство По Модулю Клавиатуры Python



Введение Python — один из наиболее подходящих языков для автоматизации задач.

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

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

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

Приложения, основанные на гуманоидной автоматизации процессов, должны разрабатываться этично и ответственно.

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



Установка модуля клавиатуры

Версия Python, используемая в этом руководстве, — 3.8. Однако модуль клавиатуры может работать как с Python 2.x, так и с Python 3.x. Если вы используете Linux, чтобы использовать эту библиотеку, вы должны установить ее с правами root. Если вы этого не сделаете, вы получите:
  
  
  
  
  
  
  
  
  
  
  
   

ImportError: You must be root to use this library on linux.

Кроме того, при запуске скрипта вы должны запускать его от имени пользователя root:

$ sudo pip3 install keyboard $ sudo python3 my_script.py

В Windows и macOS, поскольку привилегии работают совсем по-разному — можно просто установить через pip и запустить скрипты:

$ pip install keyboard $ python my_script.py

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



Функция модуля клавиатуры

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

  • клавиатура.

    write(сообщение, [задержка])- пишет сообщение с задержкой или без.

  • клавиатура.

    wait(клавиша) - блокирует программу до нажатия клавиши.

    Ключ передается в виде строки («пробел», «esc» и т. д.).

  • клавиатура.

    press(клавиша)- прессует ключ и держал перед вызовом функции Release(key)

  • клавиатура.

    release(ключ)- проблемы ключ.

  • клавиатура.

    send(ключ)- прессы и релизы ключ.

  • Keyboard.add_hotkey(hotkey, function) — создает горячую клавишу, которая при нажатии выполняет функцию.

  • Keyboard.record(key) — записывает действия клавиатуры до нажатия клавиши.

  • Keyboard.play(recorded_events, [speed_factor]) — воспроизводит события, записанные с помощью функции Keyboard.record(key), с дополнительным Speed_factor.
Однако мы все это рассмотрим.

Вот краткий пример:

>>> import keyboard >>> keyboard.write("Hello") >>> Hello

Приветственное сообщение появляется на экране терминала, как если бы вы его написали.

Вы можете очень легко автоматизировать команду и создать для нее псевдоним горячей клавиши.

Вот (грубый) пример выхода из Python REPL и написания команды curl:

>>> import keyboard >>> keyboard.write("exit()"); keyboard.send("enter"); keyboard.write("curl https://www.google.com "); keyboard.send("enter"); >>> exit() curl https://www.google.com $ curl https://www.google.com <!doctype html><html itemscope="".





Функции клавиатуры write() и wait()

Команда write() записывает сообщение, как мы видели ранее, с дополнительной задержкой запуска.

Если задержка не установлена, запись происходит мгновенно.

Это очень хорошо сочетается с функцией wait(), которая ожидает нажатия определенной клавиши.

Например, мы можем создать импровизированный макрос, привязанный, скажем, к 1, который отвечает на этот ввод новым сообщением.

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

Мы создадим бесконечный цикл True для проверки нажатия клавиши, и вы сможете запустить скрипт в фоновом режиме:

import keyboard while True: keyboard.wait("1") keyboard.write("\n The key '1' was pressed!")

Примечание.

Эта функция не поддерживает специальные символы, поэтому, если вы добавите, скажем, ! - вы получите исключение остановки.



Функции клавиш Press() и Release()

Поскольку сложно имитировать нажатия() и отпускание(), чтобы сделать действия видимыми, мы также увидим в действии функции Record() и play().

Функция press() нажимает клавишу и отпускает ее, когда вы вызываете функцию Release() для той же клавиши.



>>> import keyboard >>> from time import sleep >>> keyboard.press("a") >>> sleep(1) >>> keyboard.release("a") >>> a

Однако вы можете удерживать некоторые специальные клавиши, такие как [SHIFT] или [CTRL], вот так:

>>> keyboard.press("shift") >>> keyboard.write("lowercase") >>> keyboard.release("shift") >>> LOWERCASE



Функции клавиатуры: запись() и воспроизведение().

Не всегда речь идет о вводе новых ключей — иногда хочется записать происходящее и воспроизвести.

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

Функция Record() принимает клавишу триггера, на которую она записывает, и возвращает последовательность событий типа KeyboardEvent. Затем вы можете поместить эту последовательность событий в функцию play(), которая точно их воспроизводит, с дополнительным аргументом Speed_factor. Он действует как множитель скорости для начальных событий:

import keyboard recorded_events = keyboard.record("esc") keyboard.play(recorded_events)

Если мы напечатаем записанные_события, они будут выглядеть примерно так:

KeyboardEvent(w up), KeyboardEvent(o down), .

]



Функция клавиатуры send()

Функция send() включает в себя функции press() и Release() вместе и используется для отдельных клавиш, в отличие от функции write(), которая используется для целых предложений:

import keyboard recorded_events = keyboard.record("s") keyboard.send("w") keyboard.send("a") keyboard.play(recorded_events)

После нажатия клавиши s воспроизводятся клавиши w и a. Функция press() также может принимать комбинации нажатых клавиш.

Вы можете отправить, например, комбинацию «ctrl+shift+s», и должно появиться диалоговое окно сохранения файла, если вы находитесь в приложении, поддерживающем эту операцию:

import keyboard while True: keyboard.wait("s")

Теги: #python #phyton #модульное программирование

Вместе с данным постом часто просматривают: