#python #keyboard
#python #клавиатура
Вопрос:
Я пытаюсь создать программу, в которой я нажимаю определенную горячую клавишу, которая затем определяет нажатие клавиши и сообщает, какую клавишу я нажал, но всякий раз, когда я нажимаю горячую клавишу, программа не реагирует ни на одно нажатие клавиши, даже на клавишу escape, и продолжает работать.
import keyboard
def dostuff():
print("Mew")
key = keyboard.read_key()
print('I have detected', type(key))
keyboard.add_hotkey('a', lambda: dostuff())
keyboard.wait('esc')
Кто-нибудь может сказать, в чем проблема?
Ответ №1:
Если вы не хотите использовать модуль клавиатуры, вы можете использовать pynput, который делает то же самое,
установите pynput с помощью pip
pip install pynput
вот код:-
from pynput import keyboard
def on_press(key):
try:
print('alphanumeric key {0} pressed'.format(
key.char))
except AttributeError:
print('special key {0} pressed'.format(
key))
def on_release(key):
print('{0} released'.format(
key))
if key == keyboard.Key.esc:
# Stop listener when esc key is pressed
return False
# Collect events until released
with keyboard.Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
Комментарии:
1. я хочу определить нажатие клавиши, я не знаю заранее, какая клавиша будет нажата
2. Вы имеете в виду, что хотите сохранить его?
3. не отображая его на консоли?
4. пример объяснит лучше, пользователь нажимает горячую клавишу «a», скажем, a, затем нажимает цифровую клавишу, например, 5, а затем требуется клавиша 1 для доступа к значению с индексом 1. поэтому мне нужно нажать a, затем 1, чтобы получить доступ к значению с индексом 1 следующим образом
5. Для этого вы можете использовать операторы if else, просто замените функцию печати на if else, if key == key_release: , получить доступ