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调用浏览器并打开一个网址的例子
Jun 05 Python
python实现简单socket程序在两台电脑之间传输消息的方法
Mar 13 Python
Python键盘输入转换为列表的实例
Jun 23 Python
OpenCV+Python识别车牌和字符分割的实现
Jan 31 Python
对python 中class与变量的使用方法详解
Jun 26 Python
python使用原始套接字发送二层包(链路层帧)的方法
Jul 22 Python
Python获取时间范围内日期列表和周列表的函数
Aug 05 Python
详解使用django-mama-cas快速搭建CAS服务的实现
Oct 30 Python
在python3.64中安装pyinstaller库的方法步骤
Jun 02 Python
Python3实现英文字母转换哥特式字体实例代码
Sep 01 Python
python 获取字典特定值对应的键的实现
Sep 29 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
Oct 12 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
web方式ftp
2006/10/09 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
2013/06/26 PHP
5种PHP创建数组的实例代码分享
2014/01/17 PHP
wampserver改变默认网站目录的办法
2015/08/05 PHP
基于PHP-FPM进程池探秘
2017/10/17 PHP
不能再简单的无闪刷新验证码原理很简单
2007/11/05 Javascript
FF火狐下获取一个元素同类型的相邻元素实现代码
2012/12/15 Javascript
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
JS中判断null、undefined与NaN的方法
2014/03/24 Javascript
js 日期比较相关天数代码
2014/04/02 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
解决vue router组件状态刷新消失的问题
2018/08/01 Javascript
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
vue动态绘制四分之三圆环图效果
2019/09/03 Javascript
express中static中间件的具体使用方法
2019/10/17 Javascript
手把手教您实现react异步加载高阶组件
2020/04/07 Javascript
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
python实现马耳可夫链算法实例分析
2015/05/20 Python
浅谈Python中copy()方法的使用
2015/05/21 Python
Python 'takes exactly 1 argument (2 given)' Python error
2016/12/13 Python
Python中元组,列表,字典的区别
2017/05/21 Python
Django在win10下的安装并创建工程
2017/11/20 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
TensorFlow深度学习之卷积神经网络CNN
2018/03/09 Python
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
python生成每日报表数据(Excel)并邮件发送的实例
2019/02/03 Python
python生成特定分布数的实例
2019/12/05 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
校长先进事迹材料
2014/02/01 职场文书
运动会广播稿100字
2014/09/14 职场文书
2015年家长学校工作总结
2015/04/22 职场文书
2015年禁毒工作总结
2015/04/30 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书