簡體   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