如何通过pynput与日志记录实现键盘、鼠标的监听行为?
此项功能的实现主要是使用了多线程、键盘/鼠标事件监听,最后通过NLTK语言的处理,从而反向推出电脑的操作记录等信息。业务逻辑并不复杂,我们一起来看看吧!
【阅读全文】
安装相关的第三方库,一是关于监听的处理、二是关于日志的记录模块、三是关于简单的线程处理模块。
1、安装pynput库监控键盘、鼠标事件
2、安装日志处理
将相关的模块导入到代码块中。
# 鼠标键盘监控
from pynput import keyboard, mouse
# 日志处理
from loguru import logger
# 多线程处理
from threading import Thread
将目标日志记录文件加入到logger代码处理器中。
logger.add('lister.log')
编写鼠标被按下时的处理函数。
def on_keyboard_press(key):'''按键时记录所按下的键:param key::return:'''logger.debug(f'{key} :被按下了')
编写鼠标抬起时的处理函数。
def on_keyboard_release(key):'''释放按键处理函数:param key::return:'''if key == keyboard.Key.esc:return False
编写鼠标单击、右击以及滑轮的处理函数。
def on_mouse_click(x, y, click, pressed):if click == mouse.Button.left:logger.debug('鼠标左键按下了')elif click == mouse.Button.right:logger.debug('鼠标右键按下了')return Falseelse:logger.debug('中间滚轮按下了')
将键盘相关的处理函数加入到键盘事件的监听中。
def func_keyboard():'''键盘的按下/释放的监听:return:'''with keyboard.Listener(on_press=on_keyboard_press, on_release=on_keyboard_release) as keyboard_listener:keyboard_listener.join()
将鼠标相关的处理函数加入到鼠标事件的监听中。
def func_mouse_click():'''监听鼠标:return:'''with mouse.Listener(on_click=on_mouse_click) as mouse_listener:mouse_listener.join()
在main()的处理函数中将鼠标监听、键盘监听分别作为两个线程启动。
if __name__ == '__main__':'''执行线程'''# 定义键盘监听线程thread_keyboard = Thread(target=func_keyboard)# 定义鼠标监听线程thread_mouse = Thread(target=func_mouse_click)# 分别启动线程thread_keyboard.start()thread_mouse.start()
最后可以得到一份键盘、鼠标历史执行状态记录的日志文件,通过NLTK语言的处理从而逆向推出电脑的操作内容,这一部分就不演示了。
【往期精彩】
● 如果你是一名java程序员,面对已经写好的python脚本该如何调用,其实很简单!
● 如何使用PyQt5一步步实现用户登录GUI界面、登录后跳转?
● 办公自动化:几行代码将PDF文档转换为WORD文档(代码实战)!
● 办公自动化:轻松提取PDF页面数据,并生成Excel文件(代码实战)!
● sched 模块中巨好用的轻量级定时任务神器scheduler!
● 不用再使用命令行打包成exe,有人写出了UI应用,可视化UI界面对python程序进行打包的方法!
● 发现一个秘密:既python3.6之后字典竟然变成了有序集合,我再次验证了一下!
● 这么多的内置函数能记住吗?对python的68个内置函数分类总结!
● 必须要会的文件操作对象File,python文件读写操作利器!
● 你不知道的CS模式的进程管理工具,状态监测、项目启停一目了然!
● 如何将一个python应用以docker镜像的方式来运行?
● python-celery专注于实现分布式异步任务处理、任务调度的插件!
● python远程服务操作工具:fabric,远程命令、本地命令、服务器操作利器!
● python超赞插件you-get,执行一行命令即可下载、命令行下载工具推荐!
如何通过pynput与日志记录实现键盘、鼠标的监听行为?相关推荐
- flex(入门)之timer的使用,键盘,鼠标的监听
package {import flash.display.Shape;import flash.display.Sprite;import flash.events.Event;import fla ...
- python获取键盘事件_50-用Python监听鼠标和键盘事件
PyHook是一个基于Python的"钩子"库,主要用于监听当前电脑上鼠标和键盘的事件.这个库依赖于另一个Python库PyWin32,如同名字所显示的,PyWin32只能运行在W ...
- oralce 数据库监听日志状态及目录:查看监听(使用grid用户登陆):
数据库监听日志状态及目录:查看监听(使用grid用户登陆): su - grid 密码:grid [grid@db1 ~]$ lsnrctl LSNRCTL> status LSNRCTL> ...
- vue用户行为收集_vue 实现移动端键盘搜索事件监听
1.首先注意,input的type="serch" 2.监听keypress事件 (1)KeyDown.KeyUp 事件 这些事件是当一个对象具有焦点时按下 ( KeyDown ) ...
- ionic3开发系列——实现对手机软件键盘按键的监听
最近开发项目,上级boss给出的一个需求是:在input输入框输入值后,点击手机软件键盘的确认键之后对文本框中的值进行下一步的操作. 百度了好多都没有找到关于ionic3相关的教程或者解决办法, 看到 ...
- js对手机键盘事件的监听
js还没有办法对手机软键盘直接进行监听的,但是可以有其他角度来判断软键盘是否弹起.比如输入框是否获取焦点等. focusin和focusout支持冒泡,对应focus和blur, 使用focusin和 ...
- Android 键盘监听 键盘展开/收起监听
如和优雅地实现键盘展开/收起监听 Android 键盘的展开与收起一直是个很遭人诟病的东西 方法各式各样都有,但是基本都不是很好用,有各种限制 这里编写了一个优雅地实现方式,利用屏幕实际高度与显示区域 ...
- C# 实现按键精灵 记录录制键盘鼠标
是一个非常实用的键盘鼠标脚本录制工具,通过它你可以轻松地进行脚本录制,简单易用,不需要任何编程知识就能做出功能强大的脚本,只要你在电脑前用双手可以完成的动作,都可以替你完成. 下载地址: 下载软件 特 ...
- java完成键盘动作_java实现鼠标和键盘动作后台监听
有的时候需要我们对鼠标和键盘的动作(鼠标的移动,键盘的点击)进行监听,比如按键记录,鼠标坐标记录等. 我们使用JNA来实现以上的操作 tips:JNA类库使用一个很小的本地类库sub 动态的调用本地代 ...
- python监听文件更改记录_如何用机器人监听老板微信?
随着微信社交的兴起,我们加入的群也越来越多,一个不经意就被拉入好几个群,群是大家协同交流的平台,但是微信群却越来越泛滥,不知道大家有没有统计过自己浪费在毫无营养的群中的时间? 因为群质量或者群太吵的 ...
最新文章
- WebMvcConfigurerAdapter过时了替代的方法
- 东京见闻:快速走红日本市场 阿里云的三大秘密
- numpy添加元素_科研速递 | 花费15年众望所归!NumPy论文终登上Nature!
- UVA 10142 Australian Voting(模拟)
- SimpleAdapter的用法
- 蒙克:云计算安全问题被夸大
- b500k带开关电位器内部构造_R138带开关大功率大电流电位器 B10K B500K
- win7需要计算机管理员权限,Win7系统提示“需要管理员权限”如何解决?
- linux如何查看所有的用户和组信息?
- frameset ,iframe的使用
- Hibernate→HQL、query.list()返回数据类型、查询相关语句、分页、原生SQL、@注解、持久化对象状态及生命周期、一多关系、继承映射关系、逆向工程
- 3星|《三联生活周刊》2017年43期:美国就医可以获取最新的治疗技术(主要是新药)和先进的医院服务(以病人为中心的医生团队服务)...
- ACR122U Android端应用开发入道指南
- Pr视频、图片局部放大画面或画面移动
- linux 网卡RX丢包,解决网卡丢包问题,以及丢包问题解决后系统网络还是慢的问题...
- Wondershare Flash Gallery Factory
- 神经网络预测鸢尾花的种类
- 关于我国计算机软件著作权保护的调研报告,我国计算机软件著作权保护问题研究...
- GUI程序中添加控制台调试
- 在html页面中使用模板继承,HTML5下的模板继承
热门文章
- AMR 文件解析及编解码流程
- 实时调度论文中经常出现的术语 ties broken arbitrary的意思
- 爬取网易严选某种衣服商品数据,实现可视化,结论有点吓人
- 微信小程序图片懒加载(lazy-load,感觉不生效)
- Android热更新方案Robust——美团热更新(热修复)使用介绍
- 【微信小程序】表单验证WxValidate.js使用
- 2021-最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)---JavaScript篇
- 机器学习 Python scikit-learn 中文文档(10)Scikit-Learn 处理文本数据
- 力推个p站相关站点 画师美图和各种工具方法
- 两台计算机如何打印机共享打印机,多台电脑怎样共享一台打印机?方法就是这么简单!...