前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python Hook

Python Hook

作者头像
py3study
发布2020-01-09 15:55:27
9930
发布2020-01-09 15:55:27
举报
文章被收录于专栏:python3python3
代码语言:javascript
复制
# -*- 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()

代码语言:javascript
复制
#将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

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

这里写图片描述
这里写图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档