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 16 Python
为Python程序添加图形化界面的教程
Apr 29 Python
Python实现遍历数据库并获取key的值
May 17 Python
Python中的super用法详解
May 28 Python
Python中规范定义命名空间的一些建议
Jun 04 Python
Python中的字符串操作和编码Unicode详解
Jan 18 Python
python中学习K-Means和图片压缩
Nov 20 Python
python清除字符串中间空格的实例讲解
May 11 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
Python中的list与tuple集合区别解析
Oct 12 Python
pycharm 实现本地写代码,服务器运行的操作
Jun 08 Python
jupyter notebook快速入门及使用详解
Nov 13 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
PHP4实际应用经验篇(9)
2006/10/09 PHP
[原创]PHP正则匹配中英文、数字及下划线的方法【用户名验证】
2017/08/01 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
2018/09/03 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
QUnit jQuery的TDD框架
2010/11/04 Javascript
Javascript实现DIV滚动自动滚动到底部的代码
2012/03/01 Javascript
jsp网页搜索结果中实现选中一行使其高亮
2014/02/17 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
js推箱子小游戏步骤代码解析
2018/01/10 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
2018/02/27 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
JavaScript中如何调用Java方法
2020/09/16 Javascript
[04:09]2014DOTA2国际邀请赛Ti西雅图 历届冠军相继出局 BBC综述今日比赛
2014/07/20 DOTA
python实现Adapter模式实例代码
2018/02/09 Python
django用户登录和注销的实现方法
2018/07/16 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
代码详解django中数据库设置
2019/01/28 Python
python实现抽奖小程序
2020/04/15 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
python绘制彩虹图
2019/12/16 Python
tensorflow 大于某个值为1,小于为0的实例
2020/06/30 Python
中东奢侈品购物网站:Ounass
2020/09/02 全球购物
下述程序的作用是计算机数组中的最大元素值及其下标
2012/11/26 面试题
Linux开机引导的步骤是什么
2015/10/19 面试题
会计辞职信范文
2014/01/15 职场文书
外贸采购员岗位职责
2014/03/08 职场文书
爱心捐助倡议书
2014/05/19 职场文书
趣味运动会策划方案
2014/06/02 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS