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 相关文章推荐
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
Jan 26 Python
对pandas中apply函数的用法详解
Apr 10 Python
Python2.7.10以上pip更新及其他包的安装教程
Jun 12 Python
Python爬虫之pandas基本安装与使用方法示例
Aug 08 Python
python实现逐个读取txt字符并修改
Dec 24 Python
Python从入门到精通之环境搭建教程图解
Sep 26 Python
Python SQLAlchemy入门教程(基本用法)
Nov 11 Python
Python读取YAML文件过程详解
Dec 30 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
Apr 27 Python
Python连接Impala实现步骤解析
Aug 04 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
Nov 05 Python
python list等分并从等分的子集中随机选取一个数
Nov 16 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
第十五节--Zend引擎的发展
2006/11/16 PHP
国外PHP程序员的13个好习惯小结
2012/02/20 PHP
PHP static局部静态变量和全局静态变量总结
2014/03/02 PHP
PHP遍历目录并返回统计目录大小
2014/06/09 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
2019/03/18 PHP
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
js改变style样式和css样式的简单实例
2016/06/28 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
微信小程序遍历Echarts图表实现多个饼图
2019/04/25 Javascript
详解JavaScript实现动态的轮播图效果
2019/04/29 Javascript
解决layui弹框失效的问题
2019/09/09 Javascript
RxJS在TypeScript中的简单使用详解
2020/04/13 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
python过滤字符串中不属于指定集合中字符的类实例
2015/06/30 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
python的launcher用法知识点总结
2020/08/07 Python
Python用SSH连接到网络设备
2021/02/18 Python
Html5 实现微信分享及自定义内容的流程
2019/08/20 HTML / CSS
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
JD Sports丹麦:英国领先的运动时尚零售商
2020/11/24 全球购物
大学三年的自我评价
2013/12/25 职场文书
创建服务型党组织实施方案
2014/02/25 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
机械设计制造及其自动化专业求职信
2014/06/17 职场文书
党员违纪检讨书怎么写
2014/11/01 职场文书
世界红十字日活动总结
2015/02/10 职场文书
社区敬老月活动总结
2015/05/07 职场文书
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle