使用 pynput 键盘记录器收听特定键?

Listen for a specific key using pynput keylogger?

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

您可以使用KeyCode.from_char(char) 从指定的字符中获取密钥。所以 KeyCode.from_char('w') 会 return 成为 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()