很多小伙伴说自己的公司在监控自己有没有摸鱼、偷懒。有时候想偷偷懒都会被发现,今天就带大家来解开这神秘的面纱。搞懂了这个,估计你就知道怎么去摸鱼了。

监控键盘

如果公司偷偷在我们的电脑上运行了一个后台进程,来监控我们的键盘事件,最简单的 python 写法大致是这样的:

正在上传…重新上传取消

from pynput import keyboarddef on_press(key):print(f'{key} :pushed')def on_release(key):if key == keyboard.Key.esc:return Falsewith keyboard.Listener(on_press=on_press, on_release=on_release) as lsn:lsn.join()

正在上传…重新上传取消

随意敲击键盘,你就会从控制台看到这样的输出:

代码内容就是两个方法,一个是监听按键事件,另一个是监听退出事件——敲击 ESC 按键后释放就退出了。

监控鼠标

如果还要监听鼠标事件,那么上这段代码就行了:

正在上传…重新上传取消

from pynput import mousedef on_click(x, y, button, pressed):if button == mouse.Button.left:print('left was pressed!')elif button == mouse.Button.right:print('right was pressed!')return Falseelse:print('mid was pressed!')
# 定义鼠标监听线程
with mouse.Listener(on_click=on_click) as listener:listener.join()

正在上传…重新上传取消

这段代码主要是监听鼠标的左右键点击操作,运行之后操作鼠标,就可以看到控制台打印如下结果:

细心的你一定会发现,每次点击事件,都打印了两次。这是因为按下和松开都会触发鼠标事件。

记录监控日志

键盘事件和鼠标事件都有了,是时候将二者结合起来,把用户的操作记录到日志了。这里我们用 loguru 这个模块来记录日志。

整个代码如下:

正在上传…重新上传取消

from pynput import keyboard, mouse
from loguru import logger
from threading import Thread# 定义日志文件
logger.add('moyu.log')def on_press(key):logger.debug(f'{key} :pushed')def on_release(key):if key == keyboard.Key.esc:return False# 定义键盘监听线程
def press_thread():with keyboard.Listener(on_press=on_press, on_release=on_release) as lsn:lsn.join()def on_click(x, y, button, pressed):if button == mouse.Button.left:logger.debug('left was pressed!')elif button == mouse.Button.right:logger.debug('right was pressed!')else:return False# 定义鼠标监听线程
def click_thread():with mouse.Listener(on_click=on_click) as listener:listener.join()if __name__ == '__main__':# 起两个线程分别监控键盘和鼠标t1 = Thread(target=press_thread())t2 = Thread(target=click_thread())t1.start()t2.start()

正在上传…重新上传取消

运行之后,你就可以在同级目录下的日志文件中,看到这样的内容了:

最后

本文主要通过 pynput 这个 python 模块,演示怎么记录键盘和鼠标的操作。这几行简单的代码对于简单的输入监控是可行的,但是对于聊天记录之类的复杂语句,你还需要针对日志用 NLTK 语言处理,才能复原你的聊天记录。
这个技能的分享到这里就结束了,关于我辛辛苦苦码了这么多代码,这需要一个赞安慰一下我幼小的心灵,赞我的的一定是美丽、帅气的。下一篇 见了。

【Python】三个步骤,写一个电脑监控程序相关推荐

  1. 用 Python 写一个电脑监控程序

    大家好,我是菜鸟哥! 继打游戏.看视频等摸鱼行为被监控后,现在打工人离职的倾向也会被监控.最近有网友表示,所在企业安装了行为感知系统,该系统可以提前获知员工跳槽念头. 一时间,"打工人太难了 ...

  2. python文件分发_python 写一个文件分发小程序

    一.概述 该小程序实现从源端到目标端的文件一键拷贝,源端和目标段都在一台电脑上面,只是目录不同而已 二.参数文件说明 1. settings.txt的说明 a. 通过配置settings.txt,填源 ...

  3. 如何搭建python框架_从零开始:写一个简单的Python框架

    原标题:从零开始:写一个简单的Python框架 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 你为什么想搭建一个Web框架?我想有下面几个原因: 有一个 ...

  4. Python+PyQt5+Requests+Selenium写一个在线音乐播放器

    文章目录 写在前面的话 一.明确功能目标 二.UI设计 1.选择主界面 三.功能的实现 1.获取热榜. 2.随机获取四首热榜歌曲并获得封面. 3.初始化界面. 4.解析歌单. 5.播放/下载. 6.进 ...

  5. python自动卸载win程序_朋友说:能不能用python,帮我写一个“制作工资条”的自动化程序...

    本文说明 今天和一个朋友吃饭,她说我经常使用Excel制作工资条,但是每个月都要做一遍,你能不能用python写一个代码,能够自动化完成这个工作.这当然可以啦,就是这么牛逼! 我们先来看看原始数据是什 ...

  6. 打印工资条怎么做到每个人都有表头明细_朋友说:能不能用python,帮我写一个“制作工资条”的自动化程序?...

    本文说明 今天和一个朋友吃饭,她说我经常使用Excel制作工资条,但是每个月都要做一遍,你能不能用python写一个代码,能够自动化完成这个工作.这当然可以啦,就是这么牛逼! 我们先来看看原始数据是什 ...

  7. 【Python】教你写一个一键上传git的脚本(打包成exe)

    本篇博客来教你用Python写一个简单的git自动上传脚本 前言 为什么需要一个这样的东西? 有的时候,我的学习代码其实没啥好commit的,写一个自动上传的脚本,就可以自动执行完所有的命令,而不需要 ...

  8. 三分钟手写一个迷你jQuery,附源码

    诚然,不管前端技术怎么发展,重心都不会变,就是 操作DOM + 获取数据. 下面的代码演示了如何快速手写一个简单的jQuery: <!DOCTYPE html> <html lang ...

  9. 用python的OpenCV库写一个寻找色块的代码

    使用OpenCV库写一个寻找色块的代码可以通过以下几步实现:1.导入OpenCV库:2. 读取图像并转换成HSV格式:3. 设定色块的颜色范围:4. 根据设定的颜色范围,使用inRange函数来判断每 ...

最新文章

  1. spring源码分析之spring-web http详解
  2. HD 1525 Euclid's Game
  3. 关于Log 的一些东西
  4. HttpWatch工具简介及使用技巧(转载)
  5. Chromium OS 开源项目
  6. 解决重复出现问题的 (LINQ) 方法示例
  7. java autorun_〔批处理〕右键添加命令,让Autorun.inf见鬼去吧
  8. 发现一款好用的备份新浪博客的工具
  9. eclipse springmvc+Thymeleaf
  10. HDU 4421 Bit Magic(2-sat)
  11. 按钮打开Activity
  12. python三方库是什么_python第三方库有哪几种
  13. 国际贸易结算-信用证流程图
  14. Mac 输入法原文件的安装位置
  15. php提交表单怎么验证必填,PHP 表单验证 - 必填字段
  16. 自学python 经验学习心得分享
  17. 2018手机江湖之战:OPPO的变与不变
  18. SpringCloud微服务架构实战:商家权限体系设计及开发
  19. select的执行顺序
  20. android获取当前系统语言

热门文章

  1. SQLServer事务隔离级别
  2. KMP算法最浅显理解——一看就明白
  3. 计算机制作灯笼,电脑怎么做灯笼
  4. 怎样选择性价比高的主机服务器?
  5. 最全的SQL注入总结
  6. 朝花惜时不更了?还有没有好看的漫画推荐呢?
  7. 全面解析电商系统的未来发展趋势
  8. Solr之查询页面,索引,SolrJ
  9. jsp中用js获取url参数
  10. 江苏安几科技副总经理 陶瑞岩:数据安全是网络安全的目标之一和重要组成部分