Python pynput事件执行两次
按空格类型ww。我如何重写它,使它只按w一次?好吧,我想出来了。似乎keyboard.Events()记录了按键按下和按键释放时的按键事件。意思是Python pynput事件执行两次,python,pynput,Python,Pynput,按空格类型ww。我如何重写它,使它只按w一次?好吧,我想出来了。似乎keyboard.Events()记录了按键按下和按键释放时的按键事件。意思是 def pressLetter(charIn): val = getKeyValue(charIn) PressKey(val) return def KeyboardEvents(): from pynput import keyboard with keyboard.Events() as events:
def pressLetter(charIn):
val = getKeyValue(charIn)
PressKey(val)
return
def KeyboardEvents():
from pynput import keyboard
with keyboard.Events() as events:
for event in events:
if event.key == keyboard.Key.space:
pressLetter('w')
按w两次,因为它在按下键和释放键时都执行。
我找到的解决方案是使用keyboard.Listener()代替
if event.key == keyboard.Key.space:
pressLetter('w')
def pressLetter(charIn):
val = getKeyValue(charIn)
PressKey(val)
return
def on_press(key):
if key == keyboard.Key.space:
pressLetter('w')
def on_release(key):
if key == keyboard.Key.esc:
return False
with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
listener = keyboard.Listener(on_press=on_press, on_release=on_release)
listener.start()