Python Hook

发布时间:2019-08-26 08:43:44编辑:auto阅读(1694)

    # -*- 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.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)   
        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()

    #将test.py变为test.exe
    #Get py2exe from http://www.py2exe.org/               
    
    from distutils.core import setup
    import py2exe
    
    setup(console=['test.py'])
    
    #cmd下执行:python setup.py py2exe,在dist目录下有exe和必备dll

    #隐藏控制台,让其一闪而过
    import ctypes  
    whnd = ctypes.windll.kernel32.GetConsoleWindow()  
    if whnd != 0:  
        ctypes.windll.user32.ShowWindow(whnd, 0)  
        ctypes.windll.kernel32.CloseHandle(whnd)  
    

    这里写图片描述

关键字