[英]Keyboard Press Detection with pynput
from pynput import keyboard
def on_press(key):
print('Key %s pressed' % key)
def on_release(key):
print('Key %s released' %key)
with keyboard.Listener( on_press=on_press, on_release=on_release) as listener:
listener.join()
如果我一直按 F1 按鈕並松開,它會說
Key Key.f1 pressed
Key Key.f1 pressed
Key Key.f1 pressed
Key Key.f1 pressed
Key Key.f1 pressed
Key Key.f1 pressed
Key Key.f1 pressed
Key Key.f1 pressed
Key Key.f1 pressed
Key Key.f1 pressed
Key Key.f1 pressed
Key Key.f1 released
如果我一直按下 F1 按鈕並釋放,我希望它像下面那樣工作
Key Key.f1 pressed
Key Key.f1 released
請幫我:)
pressed = False
def on_press(key):
global pressed
if not pressed and key == keyboard.Key.f1: # only if key is not held
print('Key %s pressed' % key)
pressed = True # key is held
def on_release(key):
global pressed
if key == keyboard.Key.f1:
print('Key %s released' %key)
pressed = False # key is released
代碼非常不言自明,您只需提供一個 boolean pressed
,無論何時按下F1
鍵,它都是True
,無論何時釋放它,它都是False
。 如果press
為False
,您只需忽略on_press
“信號”。
如果你想用每個鍵來實現這一點,你必須將每個鍵的 state 存儲在字典中(或作為類似對象)。
pressed = {}
def on_press(key):
if key not in pressed: # Key was never pressed before
pressed[key] = False
if not pressed[key]: # Same logic
pressed[key] = True
print('Key %s pressed' % key)
def on_release(key): # Same logic
pressed[key] = False
print('Key %s released' %key)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.