使用 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()
我想创建一个按键记录器来监听按键 '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()