python windows钩子

来源:互联网 发布:linux开机启动程序 编辑:程序博客网 时间:2024/05/18 03:58
01    # -*- coding: utf-8 -*-
02    #
03    # by oldj
04    # http://oldj.net/
05    #
06    
07    import pythoncom
08    import pyHook
09    
10    def onMouseEvent(event):
11        # 监听鼠标事件
12        print "MessageName:", event.MessageName
13        print "Message:", event.Message
14        print "Time:", event.Time
15        print "Window:", event.Window
16        print "WindowName:", event.WindowName
17        print "Position:", event.Position
18        print "Wheel:", event.Wheel
19        print "Injected:", event.Injected
20        print "---"
21    
22        # 返回 True 以便将事件传给其它处理程序
23        # 注意,这儿如果返回 False ,则鼠标事件将被全部拦截
24        # 也就是说你的鼠标看起来会僵在那儿,似乎失去响应了
25        return True
26    
27    def onKeyboardEvent(event):
28        # 监听键盘事件
29        print "MessageName:", event.MessageName
30        print "Message:", event.Message
31        print "Time:", event.Time
32        print "Window:", event.Window
33        print "WindowName:", event.WindowName
34        print "Ascii:", event.Ascii, chr(event.Ascii)
35        print "Key:", event.Key
36        print "KeyID:", event.KeyID
37        print "ScanCode:", event.ScanCode
38        print "Extended:", event.Extended
39        print "Injected:", event.Injected
40        print "Alt", event.Alt
41        print "Transition", event.Transition
42        print "---"
43    
44        # 同鼠标事件监听函数的返回值
45        return True
46    
47    def main():
48        # 创建一个“钩子”管理对象
49        hm = pyHook.HookManager()
50    
51        # 监听所有键盘事件
52        hm.KeyDown = onKeyboardEvent
53        # 设置键盘“钩子”
54        hm.HookKeyboard()
55    
56        # 监听所有鼠标事件
57        hm.MouseAll = onMouseEvent
58        # 设置鼠标“钩子”
59        hm.HookMouse()
60    
61        # 进入循环,如不手动关闭,程序将一直处于监听状态
62        pythoncom.PumpMessages()
63    
64    if __name__ == "__main__":
65        main()