Hwrn.aou 2019-09-06 16:27 采纳率: 0%
浏览 344

使用 PyHook3 时为什么有时会出现延迟?

win7 下使用 VS2019 写 python

代码如下, 其实基本上就是 PyHook3 样例给出的东西:

import PyHook3
import pythoncom  # Magic utility that "redirects" to pythoncomxx.dll, only for getPyHookEvent()

def OnMouseEvent(event):
  print('MessageName:',event.MessageName)
  print('Message:',event.Message)
  print('Time:',event.Time)
  print('Window:',event.Window)
  print('WindowName:',event.WindowName)
  print('Position:',event.Position)
  print('Wheel:',event.Wheel)
  print('Injected:',event.Injected)
  print('---')

  # return True to pass the event to other handlers
  # return False to stop the event from propagating
  return True


def getPyHookEvent(mouseEvent = OnMouseEvent):
    # create the hook mananger
    hm = PyHook3.HookManager()


    hm.MouseAllButtonsDown = mouseEvent
    hm.MouseAllButtonsUp = mouseEvent


    hm.HookMouse()


    pythoncom.PumpMessages()

运行, 单击弹出的 cmd 窗口, 下面是输出:

MessageName: mouse left down
Message: 513
Time: -2061365449
Window: 8538218
WindowName: C:\Windows\system32\cmd.exe
Position: (532, 421)
Wheel: 0
Injected: 0
---
MessageName: mouse left up
Message: 514
Time: -2061365293
Window: 8538218
WindowName: 选定 C:\Windows\system32\cmd.exe
Position: (532, 421)
Wheel: 0
Injected: 0
---
MessageName: mouse right up
Message: 517
Time: -2061362438
Window: 8538218
WindowName: C:\Windows\system32\cmd.exe
Position: (495, 485)
Wheel: 0
Injected: 0
---
MessageName: mouse right down
Message: 516
Time: -2061359583
Window: 8538218
WindowName: C:\Windows\system32\cmd.exe
Position: (678, 502)
Wheel: 0
Injected: 0
---
MessageName: mouse right up
Message: 517
Time: -2061359443
Window: 8538218
WindowName: C:\Windows\system32\cmd.exe
Position: (678, 502)
Wheel: 0
Injected: 0

我首先单击一次左键, 立即弹出 mouse left down 消息, 但鼠标动作立即出现明显延迟, 直到单击右键或中键 (如果监听键盘那么键盘输入类似) 才会显示 left upright up , 但 right down 消失了(???).
其他键一切正常, 离开 cmd 窗口单击左键一切正常, 同时也能记录所有点击信息.
请问这种情况可能是怎么发生的? 该怎么避免? 还有人遇到类似的情况吗?

  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2019-09-07 23:23
    关注
    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码