如何监听 Python 中的常规键和组合键
How to listen for regular keys and key combinations in Python
我想制作一个程序来打印组合键和常规键。例如,如果用户键入 a
,我希望控制台打印 'a'
,如果用户单击 shift + a
,控制台将打印 'shift + a'
.
我应该使用什么library/code?感谢任何帮助。
重写 pynput
示例代码,以便程序可以监视 shift
键的组合。
我做了一个全局变量SHIFT_STATE
来记录shift
键是否被按下,我相信你可以扩展它来监控ctrl
,alt
,cmd
键并使代码看起来更漂亮。
顺便说一下,这个库有监控全局热键的能力
但是我并没有过多地研究它。你可以在这里查看:https://pynput.readthedocs.io/en/latest/keyboard.html#global-hotkeys
from pynput import keyboard
SHIFT_STATE = False
def on_press(key):
global SHIFT_STATE
if key == keyboard.Key.shift:
SHIFT_STATE = True
else:
try:
if SHIFT_STATE:
print(f'shift + {key}')
else:
print(key)
except Exception as e:
print(e)
def on_release(key):
global SHIFT_STATE
if key == keyboard.Key.esc:
# Stop listener
return False
elif key == keyboard.Key.shift:
SHIFT_STATE = False
# Collect events until released
with keyboard.Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
这是我的截图 运行 代码仅供参考
我想制作一个程序来打印组合键和常规键。例如,如果用户键入 a
,我希望控制台打印 'a'
,如果用户单击 shift + a
,控制台将打印 'shift + a'
.
我应该使用什么library/code?感谢任何帮助。
重写 pynput
示例代码,以便程序可以监视 shift
键的组合。
我做了一个全局变量SHIFT_STATE
来记录shift
键是否被按下,我相信你可以扩展它来监控ctrl
,alt
,cmd
键并使代码看起来更漂亮。
顺便说一下,这个库有监控全局热键的能力 但是我并没有过多地研究它。你可以在这里查看:https://pynput.readthedocs.io/en/latest/keyboard.html#global-hotkeys
from pynput import keyboard
SHIFT_STATE = False
def on_press(key):
global SHIFT_STATE
if key == keyboard.Key.shift:
SHIFT_STATE = True
else:
try:
if SHIFT_STATE:
print(f'shift + {key}')
else:
print(key)
except Exception as e:
print(e)
def on_release(key):
global SHIFT_STATE
if key == keyboard.Key.esc:
# Stop listener
return False
elif key == keyboard.Key.shift:
SHIFT_STATE = False
# Collect events until released
with keyboard.Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
这是我的截图 运行 代码仅供参考