回调中的延迟导致 PyHook 中未调用其他回调

问题描述

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 中的文档,其中提到应尽快返回回调,否则可能会对当前回调链造成不良影响。但是,在这种情况下,效果似乎可以在下一个回调链中看到。 什么可能导致这种情况?这是预期的吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...