帮助pyHook错误

发布于 2021-01-29 17:26:55

我正在尝试使用pyhook在python中创建一个全局热键,该热键应该仅在按下alt键的情况下才能工作。

这是来源:

import pyHook
import pythoncom

hm = pyHook.HookManager()

def OnKeyboardEvent(event):
    if event.Alt == 32 and event.KeyID == 49:
        print 'HERE WILL BE THE CODE'

hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()

但是当我执行时,仅在第二次按下第二个键(数字1 = 49)时有效…并给出此错误:

http://img580.imageshack.us/img580/1858/errord.png

我该如何解决?用于第一时间的工作。

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    教程中注意到,在处理程序的末尾需要一个返回值:

    def OnKeyboardEvent(event):
        if event.Alt == 32 and event.KeyID == 49:
            print 'HERE WILL BE THE CODE'
    
        # return True to pass the event to other handlers
        return True
    

    我同意文档中是否需要它是模棱两可的,但是您确实需要返回True或False(或者可能是任何整数值),并且任何“
    false”值(例如0)都将阻止该事件,从而使后续处理程序都无法获取它。(这使您可以有条件地吞下某些按键,如本教程的“事件过滤”部分中所述。)

    (这并不像看起来那样容易找出来!:-))



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看