使用 pynput 进行键盘按下检测
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
代码很容易解释,你只需提供一个布尔值 pressed
,每当你按下 F1
键时,它就是 True
,而每当你释放它时,它就是 [=15] =].如果 press
是 False
,您只需忽略 on_press
“信号”。
如果您想用每个键实现此目的,您必须将每个键的状态存储在字典(或类似对象)中。
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)
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
代码很容易解释,你只需提供一个布尔值 pressed
,每当你按下 F1
键时,它就是 True
,而每当你释放它时,它就是 [=15] =].如果 press
是 False
,您只需忽略 on_press
“信号”。
如果您想用每个键实现此目的,您必须将每个键的状态存储在字典(或类似对象)中。
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)