如何检测 Windows python3+ 中的组合键?

How can i detect key combinations in Windows python3+?

我正在尝试编写程序来检测何时按下组合键并调用特定功能。所以我需要程序在按下时检测像 ctrl+v 这样的东西并做一些事情,但似乎程序不能同时识别 ctrl+v,但是当我只测试 1 个键时它会识别:

COMBINATION = [
    {keyboard.Key.ctrl, keyboard.KeyCode(char='v')}
]

在此代码中,如果我删除 2 个中的 1 个,程序似乎检测到密钥,但如果它们在一起,则不会。 这就是我用来检测键的东西:

def on_press(key):
    if any([key in COMBO for COMBO in COMBINATION]):
        current.add(key)
        if any(all(k in current for k in comb) for comb in COMBINATION):
            execute()

如果两个参数都放在 COMBINATION 中,execute() 函数就永远不会执行,但如果只有一个,它似乎确实有效。 我将 pynput 用于按下的键和一个监听所有按下的键的监听器:

with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

谢谢!

所以有一个超级简单的库叫做 keyboard

使用 pip install keyboard

安装
import keyboard

if keyboard.is_pressed('ctrl+v'):
   # Call your function

希望对你有所帮助。