1. 创建HookManager对象
import PyHook3
hm = PyHook3.HookManager()
之后的操作都是基于这个Manager对象进行。
2. 编写事件处理函数
事件处理函数需要传入一个HookEvent对象,这个类有两个子类,一个为鼠标事件MouseEvent,还有一个为键盘事件KeyboardEvent,分别为当触发相应事件时由系统传入。
MouseEvent及KeyboardEvent又分别有多个属性,代表所触发事件的具体信息。example.py已经列出了所有属性,通过对example.py例子的注释,大概就能清楚了:
# 鼠标事件处理函数
def OnMouseEvent(event):
print('MessageName:',event.MessageName) #事件名称
print('Message:',event.Message) #windows消息常量
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
#键盘事件处理函数
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)) #按键的ASCII码
print('Key:', event.Key) #按键的名称
print('KeyID:', event.KeyID)