Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】


Posted in Python onSeptember 04, 2018

本文实例讲述了Python实现监控键盘鼠标操作。分享给大家供大家参考,具体如下:

# -*- coding: utf-8 -*-
import pythoncom
import pyHook
import time
def onMouseEvent(event):
  "处理鼠标事件"
  fobj.writelines('-' * 20 + 'MouseEvent Begin' + '-' * 20 + '\n')
  fobj.writelines("Current Time:%s\n" % time.strftime("%a, %d %b %Y %H:%M:%S", time.gmtime()))
  fobj.writelines("MessageName:%s\n" % str(event.MessageName))
  fobj.writelines("Message:%d\n" % event.Message)
  fobj.writelines("Time_sec:%d\n" % event.Time)
  fobj.writelines("Window:%s\n" % str(event.Window))
  fobj.writelines("WindowName:%s\n" % str(event.WindowName))
  fobj.writelines("Position:%s\n" % str(event.Position))
  fobj.writelines('-' * 20 + 'MouseEvent End' + '-' * 20 + '\n')
  return True
def onKeyboardEvent(event):
  "处理键盘事件"
  fobj.writelines('-' * 20 + 'Keyboard Begin' + '-' * 20 + '\n')
  fobj.writelines("Current Time:%s\n" % time.strftime("%a, %d %b %Y %H:%M:%S", time.gmtime()))
  fobj.writelines("MessageName:%s\n" % str(event.MessageName))
  fobj.writelines("Message:%d\n" % event.Message)
  fobj.writelines("Time:%d\n" % event.Time)
  fobj.writelines("Window:%s\n" % str(event.Window))
  fobj.writelines("WindowName:%s\n" % str(event.WindowName))
  fobj.writelines("Ascii_code: %d\n" % event.Ascii)
  fobj.writelines("Ascii_char:%s\n" % chr(event.Ascii))
  fobj.writelines("Key:%s\n" % str(event.Key))
  fobj.writelines('-' * 20 + 'Keyboard End' + '-' * 20 + '\n')
  return True
#打开日志文件
file_name = "E:\\hook_log.txt"
fobj = open(file_name, 'w')
#创建hook句柄
hm = pyHook.HookManager()
#监控键盘
hm.KeyDown = onKeyboardEvent
hm.HookKeyboard()
#监控鼠标
hm.MouseAll = onMouseEvent
hm.HookMouse()
#循环获取消息
pythoncom.PumpMessages()
#关闭日志文件
fobj.close()

运行后可在E盘根目录下创建一个hook_log.txt文件,用于记录监控键盘、鼠标操作信息。如下图所示:

Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】

注:代码中所用到的pythoncompyHook模块可点击此处下载响应版本的whl文件再进入whl文件目录使用pip install命令进行安装

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
用python写的一个wordpress的采集程序
Feb 27 Python
深入浅析Python中join 和 split详解(推荐)
Jun 30 Python
django实现前后台交互实例
Aug 07 Python
Python实现字符型图片验证码识别完整过程详解
May 10 Python
python与C、C++混编的四种方式(小结)
Jul 15 Python
python 使用递归实现打印一个数字的每一位示例
Feb 27 Python
Python多线程实现支付模拟请求过程解析
Apr 21 Python
tensorflow pb to tflite 精度下降详解
May 25 Python
什么是python的必选参数
Jun 21 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
Sep 23 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
Feb 02 Python
Opencv 图片的OCR识别的实战示例
Mar 02 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 #Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
Sep 04 #Python
selenium+python实现自动化登录的方法
Sep 04 #Python
python使用scrapy发送post请求的坑
Sep 04 #Python
解决win64 Python下安装PIL出错问题(图解)
Sep 03 #Python
Python全局变量与局部变量区别及用法分析
Sep 03 #Python
Python wxPython库Core组件BoxSizer用法示例
Sep 03 #Python
You might like
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
2020/11/10 PHP
基于jquery的兼容各种浏览器的iframe自适应高度的脚本
2010/08/13 Javascript
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
js中的this关键字详解
2013/09/25 Javascript
jquery中子元素和后代元素的区别示例介绍
2014/04/02 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
JS实现标签页切换效果
2017/05/04 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
Windows下python3.6.4安装教程
2018/07/31 Python
python中协程实现TCP连接的实例分析
2018/10/14 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
html5 乒乓球(碰撞检测)实例二
2013/07/25 HTML / CSS
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
解释一下钝化(Swap out)
2016/12/26 面试题
爱岗敬业演讲稿
2014/05/05 职场文书
同学聚会通知书
2015/04/20 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
感谢信的技巧及范例
2019/05/15 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
用Python简陋模拟n阶魔方
2021/04/17 Python
Android开发之WECHAT微信小程序路由跳转的两种形式
2022/04/12 Java/Android