【问题标题】:Detecting numpad keys with pynput keyboard使用 pynput 键盘检测小键盘键
【发布时间】:2020-02-17 01:21:54
【问题描述】:

我正在使用 pynput 键盘模块来检测 python 应用程序中的击键。

目前我无法区分小键盘键和常规数字键,它们都返回为“1”、“2”、“3”等

那么我错过了什么?

代码:

def on_press(key):
    print key

def on_release(key):
    return

with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

【问题讨论】:

    标签: python keyboard hotkeys pynput numpad


    【解决方案1】:

    您可以使用key 对象的vk 属性来获取virtual key code,对于从小键盘键输入的数字,其范围从96 到105:

    from pynput import keyboard
    
    def on_press(key):
        if hasattr(key, 'vk') and 96 <= key.vk <= 105:
            print('You entered a number from the numpad: ', key.char)
    
    with keyboard.Listener(on_press = on_press) as listener:
         listener.join()
    

    【讨论】:

    • 我应该早点看这里的,但我还是通过查看键码 dict 弄明白了。因此,在我的实现中,我使用了keyboard.KeyCode(0x60) 来查看键码是否为num0(0x60 为num0)。无论如何,这个答案是正确的,非常感谢。希望它可以帮助一些人,因为通过谷歌搜索这个问题经历了数百页我之前找不到答案。
    猜你喜欢
    • 2021-04-29
    • 2021-02-11
    • 2019-04-04
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    相关资源
    最近更新 更多