检测程序外部鼠标事件的唯一方法是使用SetWindowsHookEx安装Windows挂钩。该pyHook模块封装的细枝末节。这是一个示例,它将打印每次鼠标单击的位置:
import pyHookimport pythoncomdef onclick(event): print event.Position return Truehm = pyHook.HookManager()hm.SubscribeMouseAllButtonsDown(onclick)hm.HookMouse()pythoncom.PumpMessages()hm.UnhookMouse()
您可以检查模块随附的 example.py 脚本,以获取有关 事件 参数的更多信息。
pyHook在纯Python脚本中使用可能会比较棘手,因为它需要一个活动的消息泵。从教程:
任何希望接收全局输入事件通知的应用程序都必须具有Windows消息泵。获得其中一种的最简单方法是使用Win32
Extensions软件包的Python中的PumpMessages方法。[…]运行时,该程序只是闲置并等待Windows事件。如果使用的是GUI工具箱(例如wxPython),则此循环是不必要的,因为该工具箱提供了自己的循环。



