繁体   English   中英

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

[英]How can i detect key combinations in Windows python3+?

我正在尝试编写一些程序来检测何时按下组合键并调用某个 function。 所以我需要程序在按下并执行某些操作时检测诸如 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() function 永远不会被执行,但如果只有一个参数,它似乎确实有效。 我正在使用 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

我希望我对你有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM