我想创建一个按键记录器,以监听按键“ w”,“ a”,“ s”,“ d”,并在检测到这些按键时将其添加到列表中。到目前为止,我已经有了这段代码
from pynput.keyboard import *
keys_pressed=[]
def on_press(key):
print(key)
def on_release(key):
if key==Key.esc:
return False
with Listener(on_press=on_press,on_release=on_release) as listener:
listener.join()
我如何检查特定按键是否被按下并将其添加到keys_pressed列表中?
答案 0 :(得分:1)
您可以使用KeyCode.from_char(char)
从指定的字符中获取密钥。因此,KeyCode.from_char('w')
将返回w
的密钥。
然后,您可以将与W,A,S和D对应的键存储在列表中或其他任何内容中,并在回调中检查是否按下的键等于其中之一。
这里是一个例子:
from pynput.keyboard import *
keys = [KeyCode.from_char(c) for c in 'wasd']
def on_press(key):
if key in keys:
print(f'good key: {key}')
else:
print(f'bad key: {key}')
def on_release(key):
if key==Key.esc:
return False
with Listener(on_press=on_press,on_release=on_release) as listener:
listener.join()