1
import pyWinhook as pyHook
import time

def OnMouseEventLeft(event):
print('MessageName: %s' % event.MessageName)
time.sleep(2) //Intentional delay
print("------")
return True

def OnKeyboardEvent(event):
print('Key: %s' %  event.Key)
print('---')
return True

hm = pyHook.HookManager()
hm.MouseLeftDown = OnMouseEventLeft
hm.KeyDown = OnKeyboardEvent

hm.HookMouse()
hm.HookKeyboard()

if __name__ == '__main__':
   import pythoncom
   pythoncom.PumpMessages()

在上面的代码中,如果我们延迟一个回调(OnMouseEventLeft),为什么会影响另一个回调(OnKeyboardEvent)。当我运行此代码时,如果我单击并在记事本中键入一个字符(在 2 秒内快速),则不会调用键盘回调(OnKeyboardEvent)。我阅读了 pyhook 中的文档,其中提到回调应该尽快返回,否则可能会对当前的回调链造成不良影响。但是,在这种情况下,看起来效果会在下一个回调链中看到。这可能是什么原因造成的?这是预期的吗?

4

0 回答 0