【问题标题】:Is there a way to block all keys except for CAPS with pyhook有没有办法用pyhook阻止除CAPS之外的所有键
【发布时间】:2019-02-02 03:42:38
【问题描述】:

我正在尝试使用 pyHook 阻止键盘上的所有键,但大写锁定键除外。下面是只阻止 a 和 A 键的代码,我希望做相反的事情。我需要做什么来扭转这种情况?

我尝试将所有键都放在大写字母旁边,但这似乎是错误的处理方式

def OnKeyboardEvent(事件):
# 只屏蔽字母 A,小写和大写
return (event.Ascii not in (ord('a'), ord('A')))

【问题讨论】:

    标签: python pyhook


    【解决方案1】:

    如果函数返回True,似乎事件并没有被阻塞。

    import string
    def OnKeyboardEvent(event):
        return event.Ascii in string.ascii_uppercase
    

    或者return.Ascii in map(ord, string.ascii_uppercase)

    【讨论】:

    • 这似乎工作得非常好,除了它没有将其检测为 ascii 键的事实。看起来在 Ascii 中没有指定 CAPS,所以我不知道如何获取这些信息。
    【解决方案2】:

    由于大写锁定本身不可打印,因此它不会反映在事件的 Ascii 属性中。

    但还有其他属性——即 KeyID:

    http://pyhook.sourceforge.net/doc_1.5.0/

    根据此表,使用它来查找大写锁定:

    https://docs.microsoft.com/en-us/windows/desktop/inputdev/virtual-key-codes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-10
      • 2021-12-31
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多