Python中使用PyHook监听鼠标和键盘事件实例
PyHook是一个基于Python的“钩子”库,主要用于监听当前电脑上鼠标和键盘的事件。
这个库依赖于另一个Python库PyWin32,如同名字所显示的,PyWin32只能运行在Windows平台,所以PyHook也只能运行在Windows平台。
关于PyHook的使用,在它的官方主页上就有一个简单的教程,大体上来说,可以这样使用
?123456789101112131415161718192021222324252627282930 313233343536373839404142434445464748495051525354555 6
# -*- coding: utf-8 -*- # 3import pythoncom 4import pyHook 5def 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"---" # 返回
True 以便将事件传给其它处理程序# 注意,这儿如果返回False ,则鼠标事件将被全部拦截# 也就是说你的鼠标看起来会僵在那儿,似乎失去响应了return True 23def 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 42def main(): # 创建一个“钩子”管理对象hm = pyHook.HookManager() # 监听所有键盘事件
hm.KeyDown = onKeyboardEvent # 设置键盘“钩子”hm.HookKeyboard() # 监听所有鼠标事件
hm.MouseAll = onMouseEvent # 设置鼠标“钩子”hm.HookMouse() # 进入循环,如不手动关闭,程序将一直处于监听状态pythoncom.PumpMessages()
56if __name__ == "__main__": main()。