pynput热键和numpad键?

2024-04-29 09:21:52 发布

您现在位置:Python中文网/ 问答频道 /正文

在我所有的搜索和测试中,numpad键似乎有与数字行分开的vk值,但没有字符值

我正在尝试使用以下代码,但不知道如何使Hotkey.parse与numpad键(或enter、+、-等键)分开工作。我更喜欢Hotkey.parse而不是我见过的其他一些实现,因为它似乎在检测按键时非常可靠,即使用户快速连续地按下和释放许多键和组合

如果有另一个热键选项可以接受vk值,它可以像parse一样使用修饰符,我很乐意使用它。到目前为止,我还没有找到任何记录在案的地方

from pynput import keyboard
from time import sleep

SkipHotkey = "<shift>+a"
go = True

def dosomething():
    print("hi")

def on_activate():
    dosomething()

def for_canonical(f):
    return lambda k: f(listener.canonical(k))

hotkey = keyboard.HotKey(keyboard.HotKey.parse(SkipHotkey),on_activate)

listener = keyboard.Listener(
    on_press=for_canonical(hotkey.press),
    on_release=for_canonical(hotkey.release))
listener.start()

while go:
    sleep(1)

Tags: fromimportforparseondefsleepvk