使用Pynput键盘记录器监听特定的按键?

时间:2020-08-26 20:47:20

标签: python pynput

我想创建一个按键记录器,以监听按键“ 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列表中?

1 个答案:

答案 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()