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文件处理
Feb 29 Python
python实现上传下载文件功能
Nov 19 Python
pandas string转dataframe的方法
Apr 11 Python
Python unittest单元测试框架总结
Sep 08 Python
python之Flask实现简单登录功能的示例代码
Dec 24 Python
详解python函数的闭包问题(内部函数与外部函数详述)
May 17 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
Jun 05 Python
Djang的model创建的字段和参数详解
Jul 27 Python
基于Keras的格式化输出Loss实现方式
Jun 17 Python
python中np是做什么的
Jul 21 Python
Python 多线程处理任务实例
Nov 07 Python
python opencv将多个图放在一个窗口的实例详解
Feb 28 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 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
深入分析PHP引用(&)
2014/09/04 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
php实现数字补零的方法总结
2018/09/12 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
JS小框架 fly javascript framework
2009/11/26 Javascript
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
jquery解决客户端跨域访问问题
2015/01/06 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
2015/06/04 Javascript
AngularJS 模块详解及简单实例
2016/07/28 Javascript
jquery submit()不能提交表单的解决方法
2017/04/24 jQuery
Vue.js 单页面多路由区域操作的实例详解
2017/07/17 Javascript
JS运动特效之链式运动分析
2018/01/24 Javascript
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
Vue.js 点击按钮显示/隐藏内容的实例代码
2018/02/08 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
简单了解Vue + ElementUI后台管理模板
2020/04/07 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
[53:43]VP vs NewBee Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
分数霸榜! python助你微信跳一跳拿高分
2018/01/08 Python
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
Python装饰器使用你可能不知道的几种姿势
2019/10/25 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
2020/06/10 Python
Python如何使用27行代码绘制星星图
2020/07/20 Python
Python爬虫之Spider类用法简单介绍
2020/08/04 Python
pycharm 如何取消连按两下shift出现的全局搜索
2021/01/15 Python
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
小学师德师风演讲稿
2014/09/02 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
2016年国培研修日志
2015/11/13 职场文书
争做文明公民倡议书
2019/06/24 职场文书
教你怎么用python实现字符串转日期
2021/05/24 Python