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自定义类并使用的方法
May 07 Python
Python3实现发送QQ邮件功能(html)
Dec 15 Python
python matplotlib画图实例代码分享
Dec 27 Python
python TKinter获取文本框内容的方法
Oct 11 Python
详解python:time模块用法
Mar 25 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
Aug 06 Python
基于python解线性矩阵方程(numpy中的matrix类)
Oct 21 Python
python 五子棋如何获得鼠标点击坐标
Nov 04 Python
Django中modelform组件实例用法总结
Feb 10 Python
Python爬取数据并实现可视化代码解析
Aug 12 Python
Python pymsql模块的使用
Sep 07 Python
如何使用Python调整图像大小
Sep 26 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
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
php比较相似字符串的方法
2015/06/05 PHP
php如何连接sql server
2015/10/16 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
javascript笔记 String类replace函数的一些事
2011/09/22 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
JavaScript利用Date实现简单的倒计时实例
2017/01/12 Javascript
JavaScript函数节流和函数防抖之间的区别
2017/02/15 Javascript
Node.js常用工具之util模块
2017/03/09 Javascript
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
Angular4表单验证代码详解
2017/09/03 Javascript
jQuery中图片展示插件highslide.js的简单dom
2018/04/22 jQuery
在angular 6中使用 less 的实例代码
2018/05/13 Javascript
Vue加载json文件的方法简单示例
2019/01/28 Javascript
vue实现前台列表数据过滤搜索、分页效果
2019/05/28 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
js回调函数仿360开机
2019/12/26 Javascript
js实现前端界面导航栏下拉列表
2020/08/27 Javascript
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
深入讲解Python编程中的字符串
2015/10/14 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
phpquery中文手册
2021/03/18 PHP
资产经营总监岗位职责范文
2013/12/01 职场文书
幽默自我介绍演讲稿
2014/08/21 职场文书
小学师德师风演讲稿
2014/09/02 职场文书
社区母亲节活动总结
2015/02/10 职场文书
会计出纳岗位职责
2015/03/31 职场文书
修改MySQL的默认密码的四种小方法
2021/05/26 MySQL
用python画城市轮播地图
2021/05/28 Python
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript