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函数的参数的默认值所引发的问题的原因
Mar 30 Python
jupyter安装小结
Mar 13 Python
Python内建函数之raw_input()与input()代码解析
Oct 26 Python
Python查看微信撤回消息代码
Jun 07 Python
pandas 对每一列数据进行标准化的方法
Jun 09 Python
python中嵌套函数的实操步骤
Feb 27 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
Python Flask 搭建微信小程序后台详解
May 06 Python
set在python里的含义和用法
Jun 24 Python
python2使用bs4爬取腾讯社招过程解析
Aug 14 Python
pytorch 实现模型不同层设置不同的学习率方式
Jan 06 Python
一文读懂Python 枚举
Aug 25 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 disk_free_space 返回目录可用空间
2010/05/10 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
2016/08/08 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
2017/09/30 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
2019/04/03 PHP
jquery ui 1.7 ui.tabs 动态添加与关闭(按钮关闭+双击关闭)
2010/04/01 Javascript
使用JavaScript检测Firefox浏览器是否启用了Firebug的代码
2010/12/28 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
js实现简单的计算器功能
2017/01/16 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
简单实现js拖拽效果
2017/07/25 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
JavaScript生成随机验证码代码实例
2019/09/28 Javascript
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
Python学习小技巧之利用字典的默认行为
2017/05/20 Python
Python sqlite3事务处理方法实例分析
2017/06/19 Python
Python3读取Excel数据存入MySQL的方法
2018/05/04 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
Python数据集切分实例
2018/12/08 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
python新手学习可变和不可变对象
2020/06/11 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
行政经理的岗位职责
2013/11/23 职场文书
2014国庆节标语口号
2014/09/19 职场文书
报到证办理个人委托书
2014/10/06 职场文书
单位政审意见范文
2015/06/04 职场文书
小学校长开学致辞
2015/07/29 职场文书
python实现简单石头剪刀布游戏
2021/10/24 Python
Mongodb 迁移数据块的流程介绍分析
2022/04/18 MongoDB
正则表达式基础与常用验证表达式
2022/06/16 Javascript