首页 > 解决方案 > 是否有资源可以显示与我的键盘相关的所有键盘键码?

问题描述

最近,我打开记事本,让我一岁大的女儿尽情地随意打字。然后她继续按下 windows 键、alts 和 ctrls 的一些神奇组合,这些组合做了一些有趣的事情,我害怕我无法从中恢复过来。所以,我开始想我应该能够运行一个简单的 Python 脚本,它会暂时阻止除字母数字键之外的所有键。我希望能够使用她自己不太可能按下的组合键(如 ctrl+esc+del 之类的)来切换阻止或解除阻止,否则使所有 F 键、Windows 键等都没有影响。我在 PyPI 上找到了键盘模块,它似乎包含了我需要的功能;然而,我需要知道如何处理键盘上的每个键,以便对程序进行编码以执行我想要的操作,但我不知道该怎么做。我运行了一个我认为很接近的简单代码片段,但我不知道它到底在告诉我什么:

import keyboard


keys = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
        '`', '-', '=', '[', ']', '\\', ';', '\'', ',', '.', '/',
        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
        'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

for key in keys:
    print(key, '\t', keyboard.key_to_scan_codes(key))

它返回一系列元组,大多数只有一个值,但其他有两个:

1    (2, 79)
2    (3, 80)
3    (4, 81)
...
x    (45,)
y    (21,)
z    (44,)

我怀疑我可以在 block 方法中输入其中一个代码,这将阻止该键被按下,但问题是我不想阻止这些键,我想阻止所有其他键,并且我例如,不知道如何找到 F5 键的代码。我显然无法将它输入到我的脚本中来获取代码,并且各种在线参考资料中这些键有几个不同的数字,我可以看出其中一些是不正确的,因为它们与我通过运行我的脚本可以看到的键码重叠。例如,我也不知道如何告诉它区分小键盘键和“qwerty”键上方的数字。有没有更好的方法来做我想做的事?我觉得这不应该是一项艰巨的任务,但我被困在了一堵砖墙上......在此先感谢您的帮助或建议!

标签: python-3.xkeyboard

解决方案


推荐阅读