dpressed = 0
def on_press(key):
if key == ('d'):
global dpressed
dpressed+=1
logging.info("D: %s" % dpressed)
当我运行此代码并按 d 时,没有任何反应,我怀疑这是因为在检查时需要调用其他键。有人知道它应该是什么吗?
对于其他可能遇到此问题的人,我从顶部的 pynput.keybord 导入了 KeyCode。然后我将 ('d') 更改为 KeyCode.from_char('d')。这应该适用于有此问题的任何人。这里有一个很好的解释
您需要将密钥格式化为 char 格式,否则它将不等于特定字符。
尝试
if key.char == ('d'):
完整的代码是:
dpressed = 0
def on_press(key):
if key.char == ('d'):
global dpressed
dpressed+=1
logging.info("D: %s" % dpressed)
对于任何有这个问题的人。这就是我解决它的方法
from pynput.keyboard import Key, Listener, KeyCode
def print_key(*key): ## prints key that is pressed
# key is a tuple, so access the key(char) from key[1]
if key[1] == KeyCode.from_char('d'):
print('yes!')
def key(): ## starts listener module
with Listener(on_press=CT.print_key) as listener:
listener.join()
while True:
key()
你有听众吗?
没有监听器,代码将无法工作。尝试在代码的最后添加它。
with Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()