Checking a specific key with pynput in Python

前端 未结 3 1684
有刺的猬
有刺的猬 2020-12-20 03:49
dpressed = 0

def on_press(key):

    if key == (\'d\'):
        global dpressed
        dpressed+=1
        logging.info(\"D: %s\" % dpressed)

Whe

相关标签:
3条回答
  • 2020-12-20 04:22

    You need to format the key to char format else it won't be equeal to the specific character.

    Try

    if key.char == ('d'):
    

    Full code being:

    dpressed = 0
    
    def on_press(key):
    
        if key.char == ('d'):
            global dpressed
            dpressed+=1
            logging.info("D: %s" % dpressed)
    
    0 讨论(0)
  • 2020-12-20 04:27

    Do you have a listener?

    Without a listener the code wont work. Try adding this at the very end of your code.

    with Listener(
        on_press=on_press,
        on_release=on_release) as listener:
    listener.join()
    
    0 讨论(0)
  • 2020-12-20 04:31

    For anyone else that may have this problem, I imported KeyCode from pynput.keybord at the top. Then I changed ('d') to KeyCode.from_char('d'). This should work for anyone with this problem. There is a great explanation here

    0 讨论(0)
提交回复
热议问题