pyhook监听鼠标事件和键盘事件
转载:https://blog.csdn.net/matrix_google/article/details/71512495
anaconda自带pythoncom模块,pythoncom包其实就是pywin32,也就是python控制windows系统的API。
想要支持pyhook必须先有pythoncom包,如果没有pythoncom就先下载一个pywin32。
Windows平台你需要下载:
第一步,安装pywin32,地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32
第二步,下载pyhook_py3k,地址:https://github.com/Answeror/pyhook_py3k
第三步,下载swig.exe,地址:http://www.swig.org/download.html
第四步,解压缩pyhook_py3k,并进行编译,cmd进入到setup.py的目录,执行命令:Python setup.py build_ext --swig=“这里是你的swig.exe的路径”\swigwin-3.0.12\swig.exe,可以根据实际情况修改swig.exe的路径,另外本机最好已安装VC2008
第五步,安装编译好的pyhook_py3k,命令:pip install .
举例:
- # -*-coding:utf-8 -*-
- import pythoncom
- import pyHook
- 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.Wheelkkk9
- print "Injected:", event.Injected
- print"---"
- # 返回 True 以便将事件传给其它处理程序
- # 注意,这儿如果返回 False ,则鼠标事件将被全部拦截
- # 也就是说你的鼠标看起来会僵在那儿,似乎失去响应了
- return True
- def onKeyboardEvent(event):
- # 监听键盘事件
- print "MessageName:", event.MessageName
- print "Message:", event.Message
- print "Time:", event.Time
- print "Window:", event.Window
- print "WindowName:", event.WindowName
- print "Ascii:", event.Ascii, chr(event.Ascii)
- print "Key:", event.Key
- print "KeyID:", event.KeyID
- print "ScanCode:", event.ScanCode
- print "Extended:", event.Extended
- print "Injected:", event.Injected
- print "Alt", event.Alt
- print "Transition", event.Transition
- print "---"
- # 同鼠标事件监听函数的返回值
- return True
- def main():
- # 创建一个“钩子”管理对象
- hm = pyHook.HookManager()
- # 监听所有键盘事件
- hm.KeyDown = onKeyboardEvent
- # 设置键盘“钩子”
- hm.HookKeyboard()
- # 监听所有鼠标事件
- hm.MouseAll = onMouseEvent
- # 设置鼠标“钩子”
- hm.HookMouse()
- # 进入循环,如不手动关闭,程序将一直处于监听状态
- pythoncom.PumpMessages()
- if __name__ == "__main__":
- main()