Как установить keyboard python

Модуль keyboard: управление клавиатурой в Python

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

Мы будем использовать модуль клавиатуры, давайте установим его:

Хорошо, откройте интерактивную оболочку Python или записную книжку/лабораторию Jupyter и следуйте инструкциям.
Сначала импортируем модуль:

Добавление горячих клавиш и сокращений

Теперь выполните эту строку кода, затем откройте любой текстовый редактор и напишите « @email » с пробелом, вы увидите волшебство!

Во-вторых, вы также можете вызывать обратный вызов каждый раз, когда нажимается горячая клавиша:

Проверка нажатия кнопки

Вы также можете проверить, действительно ли нажата кнопка:

Нажатие и отпускание кнопок

Затем вы также можете имитировать нажатие клавиш с помощью функции send() :

Вы также можете передать несколько ключей:

Оператор + означает, что мы нажимаем обе кнопки одновременно. Также можно использовать многоступенчатые горячие клавиши:

Но что, если вы хотите нажать определенную клавишу, но не хотите ее отпускать? Что ж, в игру вступают функции press() и release() :

Таким образом, вы нажмете кнопку CTRL, а затем отпустите ее, а пока можете делать все, что угодно, например, поспать несколько секунд и т.д.

Но что теперь, если вы хотите написать длинный текст, а не только определенные кнопки? send() будет неэффективным. К счастью для нас, функция write() делает именно это, она отправляет в ОС искусственные события клавиатуры, имитирующие набор заданного текста, давайте попробуем:

Установка задержки на 0,1 означает 0,1 секунды ожидания между нажатиями клавиш, это будет выглядеть причудливо, как в фильмах о взломе!

Запись и воспроизведение событий на клавиатуре

С помощью этого модуля вы можете сделать еще много интересных вещей, например, записывать события клавиатуры с помощью функции record() и воспроизводить их снова с помощью функции play() :

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

Вот что я напечатал:

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

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

Заключение

Я только что представил вам модуль, пожалуйста, просмотрите документацию или просто введите help(keyboard) в интерактивной оболочке Python для изучения других функций и методов.

Вы также можете полностью управлять своей мышью, тот же автор этого модуля сделал еще один модуль для работы с мышью!

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

Опубликовано Вадим В. Костерин

ст. преп. кафедры ЦЭиИТ. Автор более 130 научных и учебно-методических работ. Лауреат ВДНХ (серебряная медаль). Посмотреть больше записей

Источник

Руководство по модулю клавиатуры Python

Введение

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

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

В этом руководстве мы рассмотрим, как настроить и использовать модуль клавиатуры в Python.

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

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

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

Если вы используете Linnux, чтобы использовать эту библиотеку, вы должны установить ее от root. Если вы этого не сделаете, вы получите:

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

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

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

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

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

keyboard.press(key)- нажимает клавишу и удерживается до вызова функции release(key)

keyboard.release(key)- выпускает ключ.

keyboard.send(key)- нажимает и отпускает клавишу.

keyboard.add_hotkey(hotkey, function)- создает hotkey, которая при нажатии выполняет function.

keyboard.record(key)- записывает активность клавиатуры до нажатия key.

Тем не менее, мы рассмотрим все это. Вот быстрый пример:

Приветственное сообщение появляется на экране в терминале, как будто вы его написали. Вы можете очень легко автоматизировать команду и создать для нее псевдоним горячей клавиши. Вот (грубый) пример выхода из REPL Python, написания команды curl:

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

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

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

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

Функции клавиши press() и release()

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

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

Функции клавиатуры record() и play()

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

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

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

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

После нажатия клавиши s воспроизводятся клавиши w и a.

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

Хотя это неправильный способ добавить горячие клавиши. Также вы можете использовать функцию add_hotkey().

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

Функция add_abbreviation() является довольно изящной, так как она позволяет определять сокращения для длинных входных данных и заменяет сокращенные версии сохраненными полными версиями.

Например, подобно тому, как такие службы, как Google, сохраняют вашу электронную почту для большинства форм ввода, вы можете создать свою собственную аббревиатуру и запустить ее через [SPACE]:

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

Функция add_hotkey() принимает горячую клавишу, которую вы хотите сохранить, или комбинацию клавиш и функцию. Здесь легко передать анонимные лямбда-функции, хотя вы также можете добавить именованные функции.

Например, давайте добавим горячую клавишу для CTRL+j, которая запускает лямбда-функцию, регистрирующей это:

Горячая клавиша ctrl + alt + p сохраняется, и при нажатии этой комбинации вы должны увидеть вывод лямбды.

Заключение

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

Источник

Как установить keyboard python

Take full control of your keyboard with this small Python library. Hook global events, register hotkeys, simulate key presses and much more.

or clone the repository (no installation required, source files are sufficient):

or download and extract the zip into your project folder.

Then check the API docs below to see what features are available.

Use as standalone module:

Common patterns and mistakes

Preventing the program from closing

Waiting for a key press one time

Repeatedly waiting for a key press

Invoking code when an event happens

‘Press any key to continue’

keyboard.KEY_DOWN

keyboard.KEY_UP

class keyboard.KeyboardEvent

KeyboardEvent.device

KeyboardEvent.event_type

KeyboardEvent.is_keypad

KeyboardEvent.modifiers

KeyboardEvent.name

KeyboardEvent.scan_code

KeyboardEvent.time

KeyboardEvent.to_json(self, ensure_ascii=False)

keyboard.all_modifiers

keyboard.sided_modifiers

keyboard.version

keyboard.is_modifier(key)

Returns True if key is a scan code or name of a modifier key.

keyboard.key_to_scan_codes(key, error_if_missing=True)

Returns a list of scan codes associated with this key (name or scan code).

keyboard.parse_hotkey(hotkey)

Parses a user-provided hotkey into nested tuples representing the parsed structure, with the bottom values being lists of scan codes. Also accepts raw scan codes, which are then wrapped in the required number of nestings.

keyboard.send(hotkey, do_press=True, do_release=True)

Sends OS events that perform the given hotkey hotkey.

Note: keys are released in the opposite order they were pressed.

keyboard.press(hotkey)

Presses and holds down a hotkey (see send ).

keyboard.release(hotkey)

Releases a hotkey (see send ).

keyboard.is_pressed(hotkey)

Returns True if the key is pressed.

keyboard.call_later(fn, args=(), delay=0.001)

Calls the provided function in a new thread after waiting some time. Useful for giving the system some time to process an event, without blocking the current execution flow.

keyboard.hook(callback, suppress=False, on_remove= )

Installs a global listener on all available keyboards, invoking callback each time a key is pressed or released.

Returns the given callback for easier development.

keyboard.on_press(callback, suppress=False)

keyboard.on_release(callback, suppress=False)

keyboard.hook_key(key, callback, suppress=False)

Note: this function shares state with hotkeys, so clear_all_hotkeys affects it as well.

keyboard.on_press_key(key, callback, suppress=False)

keyboard.on_release_key(key, callback, suppress=False)

keyboard.unhook(remove)

keyboard.unhook_all()

Removes all keyboard hooks in use, including hotkeys, abbreviations, word listeners, record ers and wait s.

keyboard.block_key(key)

Suppresses all key events of the given key, regardless of modifiers.

keyboard.remap_key(src, dst)

Whenever the key src is pressed or released, regardless of modifiers, press or release the hotkey dst instead.

keyboard.parse_hotkey_combinations(hotkey)

keyboard.add_hotkey(hotkey, callback, args=(), suppress=False, timeout=1, trigger_on_release=False)

keyboard.remove_hotkey(hotkey_or_callback)

keyboard.unhook_all_hotkeys()

Removes all keyboard hotkeys in use, including abbreviations, word listeners, record ers and wait s.

keyboard.remap_hotkey(src, dst, suppress=True, trigger_on_release=False)

Whenever the hotkey src is pressed, suppress it and send dst instead.

keyboard.stash_state()

keyboard.restore_state(scan_codes)

keyboard.restore_modifiers(scan_codes)

keyboard.write(text, delay=0, restore_state_after=True, exact=None)

Sends artificial keyboard events to the OS, simulating the typing of a given text. Characters not available on the keyboard are typed as explicit unicode characters using OS-specific functionality, such as alt+codepoint.

To ensure text integrity, all currently pressed keys are released before the text is typed, and modifiers are restored afterwards.

keyboard.wait(hotkey=None, suppress=False, trigger_on_release=False)

Blocks the program execution until the given hotkey is pressed or, if given no parameters, blocks forever.

keyboard.get_hotkey_name(names=None)

Returns a string representation of hotkey from the given key names, or the currently pressed keys if not given. This function:

keyboard.read_event(suppress=False)

Blocks until a keyboard event happens, then returns that event.

keyboard.read_key(suppress=False)

Blocks until a keyboard event happens, then returns that event’s name or, if missing, its scan code.

keyboard.read_hotkey(suppress=True)

keyboard.get_typed_strings(events, allow_backspace=True)

Given a sequence of events, tries to deduce what strings were typed. Strings are separated when a non-textual key is pressed (such as tab or enter). Characters are converted to uppercase according to shift and capslock status. If allow_backspace is True, backspaces remove the last character typed.

This function is a generator, so you can pass an infinite stream of events and convert them to strings in real time.

Note this functions is merely an heuristic. Windows for example keeps per- process keyboard state such as keyboard layout, and this information is not available for our hooks.

keyboard.start_recording(recorded_events_queue=None)

Starts recording all keyboard events into a global variable, or the given queue if any. Returns the queue of events and the hooked function.

keyboard.stop_recording()

Stops the global recording of events and returns a list of the events captured.

keyboard.record(until=’escape’, suppress=False, trigger_on_release=False)

keyboard.play(events, speed_factor=1.0)

Note: the current keyboard state is cleared at the beginning and restored at the end of the function.

keyboard.add_word_listener(word, callback, triggers=[‘space’], match_suffix=False, timeout=2)

Invokes a callback every time a sequence of characters is typed (e.g. ‘pet’) and followed by a trigger key (e.g. space). Modifiers (e.g. alt, ctrl, shift) are ignored.

Note: all actions are performed on key down. Key up events are ignored. Note: word matches are case sensitive.

keyboard.remove_word_listener(word_or_handler)

Removes a previously registered word listener. Accepts either the word used during registration (exact string) or the event handler returned by the add_word_listener or add_abbreviation functions.

keyboard.add_abbreviation(source_text, replacement_text, match_suffix=False, timeout=2)

Registers a hotkey that replaces one typed text with another. For example

Replaces every «tm» followed by a space with a ™ symbol (and no space). The replacement is done by sending backspace events.

keyboard.normalize_name(name)

Given a key name (e.g. «LEFT CONTROL»), clean up the string and convert to the canonical representation (e.g. «left ctrl») if one is known.

About

Hook and simulate global keyboard events on Windows and Linux.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *