如何监听 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()

这是我的截图 运行 代码仅供参考