Горячие клавиши python keyboard

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

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

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

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

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

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

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

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

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

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

$ sudo pip3 install keyboard $ sudo python3 my_script.py

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

$ pip install keyboard $ python my_script.py

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

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

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

  • keyboard.write(message, [delay])- пишет сообщение с задержкой или без нее.
  • keyboard.wait(key) — блокирует программу до тех пор, пока не будет нажата клавиша. Ключ передается в виде строки («пробел», «esc» и т.д.)
  • keyboard.press(key)- нажимает клавишу и удерживается до вызова функции release(key)
  • keyboard.release(key)- выпускает ключ.
  • keyboard.send(key)- нажимает и отпускает клавишу.
  • keyboard.add_hotkey(hotkey, function)- создает hotkey, которая при нажатии выполняет function.
  • keyboard.record(key)- записывает активность клавиатуры до нажатия key.
  • keyboard.play(recorded_events, [speed_factor]) — воспроизводит события, записанные with keyboard.record(key) функция, с дополнительным speed_factor.

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

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

Приветственное сообщение появляется на экране в терминале, как будто вы его написали. Вы можете очень легко автоматизировать команду и создать для нее псевдоним горячей клавиши. Вот (грубый) пример выхода из REPL Python, написания команды 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  

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

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

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

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

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

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

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

Поскольку сложно имитировать 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() и play()

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

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

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

Если мы напечатаем 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") keyboard.press("ctrl+shift+s") # Or for MacOS keyboard.press("command+shift+s)

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

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

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

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

>>> import keyboard >>> keyboard.add_abbreviation("@", "john@stackabuse.com")

Во время выполнения, если вы введете @, за которым следует [ПРОБЕЛ] - ввод в длинной форме заменит введенный @.

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

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

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

import keyboard keyboard.add_hotkey("ctrl+alt+j", lambda: print("ctrl+alt+j was pressed"))

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

Заключение

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

Источник

Keyboard module: Controlling your Keyboard in Python

Keyboard module: Controlling your Keyboard in Python

In Python, we have this amazing "keyboard" module that you can use for controlling the keyboard of any system. The module can come in handy in various instances, such as when you want to automate your tasks on your system that require inputs from the keyboard.

Well, in this tutorial, we will learn some of the most important functions of the keyboard module and see how it works.

What is Python Keyboard Module?

Python keyboard is an open-source third-party library that can control your keyboard. Although it is a small API and supports only a few features, it is enough to serve you with several complex functionalities.

To install the keyboard module for your Python environment, you need to run the following pip command on the terminal or command prompt:

Add Abbreviation with Python Keyboard Library

The keyboard module provides us with an add_abbreviation() function that will set a specified full string for an abbreviation. If you have ever worked with MS Word, you might know that if you write the 2nd and hit space, it will superscript the nd to 2, like this 2 nd .

Similarly, we can use the add_abbreviation() function and specify a string or a value to a specific abbreviation.

import keyboard #type cp for copyright character keyboard.add_abbreviation('cp', '© ') #type tgb for copyright character keyboard.add_abbreviation('tgb', 'TechGeekBuzz.com') print("Do not close the terminal") #deactivate with Esc keyboard.wait("Esc")
Do not close the terminal

After executing the above script, you can open any text editor. In the text editor, you will see that if you type cp it will print ©, and if you type tgb it will print TechGeekBuzz.com. And if you want to stop the abbreviation you need to press the Esc key.

Set HotKey with Python Keyboard Modules

Let's say you want to create your own hotkey that performs a particular operation when a specific combination of keys is pressed. Hotkeys are also known as shortcut keys, for example, Ctrl+C is a hotkey for copy and Ctrl+V is the hotkey for paste.

Using the Python keyboard add_hotkey() function we can create a new shortcut key. Let's create a hotkey with a combination of Ctrl + G that will open Google Chrome.

import webbrowser import keyboard keyboard.add_hotkey("ctrl+g", lambda:webbrowser.get("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s").open("http://google.com")) print("Press Ctrl+G to open Google Chrome") #deactivate with Esc keyboard.wait("Esc")
Press Ctrl+G to open Google Chrome

After you execute the above program, you can press Ctrl+G to open Google Chrome. The webbrowser is an inbuilt Python module that is used to handle browsers in Python. To deactivate the hotkey you can press Esc. If you are on macOS, then instead of C:/Program Files (x86)/Google/Chrome/Application/chrome.exe %s path, you should use

'open -a /Applications/Google\ Chrome.app %s'

Record the Keys with Python Keyboard Module

Let's say you want a log that contains all the records of keys that you have pressed. The keyboard module offers a record(until) function that will record all the keyboard events (keys pressed by the user).

import keyboard #record the keyboard event till shift key press rec = keyboard.record("shift") #print the records print(rec) #deactivate the recorded program with Esc key keyboard.wait("Esc")

The above program will record the keyboard events and print them as a Keyboard module event when you press the shift key. Let's say you want to print all the events you have done after running the above program, for that, you need to use the play() function.

import keyboard #record the keyboard event till shift key press rec = keyboard.record("shift") keyboard.play(rec, speed_factor=10) print("Write Something on a text editor and press shift") #deactivate the record program with Esc key keyboard.wait("Esc")

Conclusion

In this Python tutorial, we discussed how to use the Python keyboard module for controlling various keyboard functionalities. In particular, we mentioned how you can set abbreviations, hotkeys, and record keyboard events using the Python keyboard library. The library is small, but it comes with several powerful features.

You can visit its Github page to know more about its functions and methods.

People are also reading:

Источник

Читайте также:  Php mysql cannot load
Оцените статью