首页 > 解决方案 > keyboard.is_pressed() 在 Python 中是如何工作的?

问题描述

我试图弄清楚当我只按 1 次“u”时,为什么它会无限次按“w”。打印功能也不起作用,但如果我删除了keyboard.press('w')和keyboard.release('w'),打印功能开始正常工作(它打印出4,直到我按下一个按钮然后它打印输出正确的数字,当我释放按钮时,它再次写出 4)

while True:
    if keyboard.is_pressed('u'):
        keyboard.press('w')
        keyboard.release('w')
        print(0)
    elif keyboard.is_pressed('j'):
        #keyboard.press_and_release('s')
        print(1)
    elif keyboard.is_pressed('k'):
         #keyboard.press_and_release('d')
         print(2)
    elif keyboard.is_pressed('h'):
        #keyboard.press_and_release('a')
        print(3)
    else:
        print(4)
        keyboard.release('w')

标签: pythonkeyboard

解决方案


我知道那是一年前的事,但我今天发现了这个问题。

Sooo,根据键盘 API
keyboard.press(hotkey)模拟在键盘上按下热键。
keyboard.release(hotkey)模拟在键盘上释放热键。
热键是键号、键名或两个或多个键的组合。

keyboard.press_and_release(hotkey)keyboard.send(hotkey)模拟按下和释放键或热键。
按下和释放行为取决于使用 的值do_pressdo_release时间keyboard.send()

例如:

keyboard.send('space', do_press=True, do_release=True)

将模拟按下释放空格键,但是:

keyboard.send('space', do_press=False, do_release=True)

将模拟释放空格键

keyboard.is_pressed(key)如果按下了指定的,则返回 True,否则返回 False


希望我有所帮助!


推荐阅读