使用 pynput 键盘检测小键盘键

Posted

技术标签:

【中文标题】使用 pynput 键盘检测小键盘键【英文标题】:Detecting numpad keys with pynput keyboard 【发布时间】: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()

【问题讨论】:

【参考方案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)。无论如何,这个答案是正确的,非常感谢。希望它可以帮助一些人,因为通过谷歌搜索这个问题经历了数百页我之前找不到答案。

以上是关于使用 pynput 键盘检测小键盘键的主要内容,如果未能解决你的问题,请参考以下文章

Raspbian 在睡眠时检测键盘输入

如何检测是不是在 C++ 中按下了除特定键盘键之外的任何键盘键?

使用 pynput 监听器创建键盘快捷键

检测浏览器是不是在网页中有键盘/箭头键

在 Java 中检测和操作键盘方向键

使用 jQuery 检测键盘键并为此添加功能