打破枯燥工作日,用Python统计键盘和鼠标点击次数,钉钉告诉你今天摸鱼了多少次!

1 前言

是否曾想过,在一天的工作中,你到底点击了键盘多少次,或者鼠标点击了多少下?

是否好奇每天工作的时候,自己究竟有多努力?

本文将带你使用 Python,利用 pynput 监听键盘和鼠标事件,统计每天的点击次数,并通过钉钉机器人告诉你今天到底摸鱼了多少次。

效果如下图:
在这里插入图片描述

其实之前有做过一个类似的小软件:https://blog.csdn.net/weixin_42887343/article/details/121697536
在这里插入图片描述

而这次使用钉钉每天定时上传展示,不得不说钉钉的机器人是个非常好玩的好东西,更多内容可以查看钉钉的官网:
https://open.dingtalk.com/document/orgapp/webhook-stream-free-to-commercialization-announcement

2 准备工作

(1)创建自定义钉钉机器人,这样就可以通过webhook。
官方教程链接:https://open.dingtalk.com/document/robots/custom-robot-access/
(2)安装必要的 Python 库。在终端或命令提示符中执行以下命令:

pip install pynput schedule dingtalkchatbot

总之就是缺什么安装什么。

代码实现

写代码!是不可能自己写代码的!
其实我现在很少写python,忽然想写点东西还真响应不过来,可是不怕,跟进技术潮流,我有ChatGPT。
首先依据自己的需求进行提问1(功能点1):
在这里插入图片描述

再是提问二(功能点2):
在这里插入图片描述
这样我们就得到了我们想要的代码,可是为什么要分开问呢?其实也可以一起问,但是我用的是免费的chatgpt3.5,对他的自信程度就没有那么高咯,所以挨个提问,逐渐递进。

当然得到最终代码后,我们还需要做一些微调,比如把自己的钉钉钩子替换上,发送到钉钉的信息格式调整为自己想要的格式等等。

3 运行脚本

运行脚本,它将会一直在后台监听你的键盘和鼠标事件。每天晚上9点,它会发送一条消息到你指定的钉钉群,告诉你今天的键盘和鼠标点击次数。

nohup python click_counter.py &

使用 nohup + & 表示不阻塞终端,在后台运行。

为了保持稳定性,也可以将代码打包成可执行文件后运行,这样会更加稳定一些。

4 结语

通过这个简单的 Python 脚本,你可以更加有趣地了解自己每天的工作习惯。记得保持好奇心,享受编程的乐趣!

你可以根据自己的需求扩展博客内容,添加更多关于如何使用 pynput、DingTalkChatbot 的说明,或者优化代码的方法。希望这个示例能为你的博客写作提供一些灵感。

5 整体代码

import time
import schedule
from pynput import mouse, keyboard
from dingtalkchatbot.chatbot import DingtalkChatbotclass ClickCounter:def __init__(self, webhook, secret=None):self.keyboard_clicks = 0self.mouse_clicks = 0self.xiaoding = DingtalkChatbot(webhook, secret=secret)self.keyboard_listener = keyboard.Listener(on_press=self.on_key_press)self.mouse_listener = mouse.Listener(on_click=self.on_mouse_click)schedule.every().day.at("20:58").do(self.daily_stats)def on_key_press(self, key):self.keyboard_clicks += 1def on_mouse_click(self, x, y, button, pressed):if pressed:self.mouse_clicks += 1def daily_stats(self):if self.keyboard_clicks == 0 or self.mouse_clicks == 0:returnmsg = f'> mac键盘- {self.keyboard_clicks} 次\n\n> mac鼠标- {self.mouse_clicks} 次\n\n🐟🐟又是摸鱼的一天🐟🐟'self.xiaoding.send_markdown(title='今日工作量统计', text='#### 今日工作量:\n' + msg)self.keyboard_clicks = 0self.mouse_clicks = 0def start_listening(self):self.keyboard_listener.start()self.mouse_listener.start()while True:schedule.run_pending()time.sleep(10)# WebHook地址
webhook_url = 'https://oapi.dingtalk.com/robot/send?access_token=0931814dbcf5e593e9752XXXXXXXXXXf21481b225c4567929c56f926ee08'
secret_key = 'SECef7cd67264bbd03b9dae9bXXXXXXXXX54ed2bfb7de1fcc49b9b5a032c8'  # 可选:创建机器人勾选“加签”选项时使用# 创建ClickCounter实例
click_counter = ClickCounter(webhook_url, secret_key)# 启动监听
click_counter.start_listening()

7 最后

此博客的主体框架包含标题,当然也是让ChatGPT帮我干的咯。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/234190.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于SSL证书常见的那些误区,你“中”了吗

随着数据安全的重要性越来越凸显,使用SSL证书以实现网站HTTPS加密保护及身份的可信认证成为各政企网站的广泛选择。然而很多网站运营者对于SSL证书的理解仍然存在一些误区,为了能让大家对SSL证书有更为清晰的认识,下面小锐就带大家一起来了解…

Django(一)

1.web框架底层 1.1 网络通信 注意:局域网 个人一般写程序,想要让别人访问:阿里云、腾讯云。 去云平台租服务器(含公网IP)程序放在云服务器 先以局域网为例 我的电脑【服务端】 import socket# 1.监听本机的IP和…

drf知识--01

前后端开发模式 在开发Web应用中,有两种应用模式: 前后端混合开发: bbs 项目--renderajax 1、全栈开发--前端html后端都是一个人写 2、前端人员:写空页面,没有模板语法,只要html,c…

运维笔记之centos部署Go-FastDfs

安装Go-FastDfs 当前最新版本为1.4.5,但发布的最新版本为1.4.4 # 下载文件 wget --no-check-certificate https://github.com/sjqzhang/go-fastdfs/releases/download/v1.4.4/fileserver -O fileserver # 赋权限 chmod x fileserver # 运行 ./fileserver server服…

FA2016ASA (MHz范围晶体单元,内置热敏电阻) 汽车

FA2016ASA是爱普生推出的一款内置热敏电阻、频率范围为38.4MHz的晶振,确保数据的准确传输,同时有效避免频谱干扰的出现。可以在-40C to 125C 的温度内稳定工作。在汽车内部空间有限的情况下,FA2016ASA以其小型超薄的外形尺寸2.0 1.6 0.68mm…

职场规划和职业发展

有人说,做任何事情都要有规划,在职场中人要有规划,公司也要有规划。职场上没有人是你生命中的例外,如果你没有规划,那么就说明你根本不知道自己要什么。只有做好规划,才能让你在职场中获得更好的发展。在职…

RocketMQ从入门到精通

1.MQ概述 1.1 RocketMQ简介 RocketMQ 是阿里开源的分布式消息中间件,跟其它中间件相比,RocketMQ 的特点是纯JAVA实现,是一套提供了消息生产,存储,消费全过程API的软件系统。 1.2 MQ用途 限流削峰 MQ可以将系统的超量请…

Java第二十章课堂总结

如果一次只完成一件事情,很容易实现。但现实生活中,很多事情都是同时进行的。Java中为了模拟这种状态,引入了线程机制。简单地说,当程序同时完成多件事情时,就是所谓的多线程。多线程应用相当广泛,使用多线…

【bug日记】如何切换jdk版本,如何解决java和javac版本不一致

背景 今天在安装jenkins后,使用java运行war包的时候,提示jdk1.8版本太低,需要提高版本,所以就需要切换jdk版本 解决 在用户变量中,首先更改了JAVA_HOME的地址为17的目录,发现javac的版本改为17了&#x…

Jmeter的接口测试详细步骤并实现业务闭环

一、首先是了解Jmeter接口测试用到的组件 1、测试计划:Jmeter的起点和容器2、线程组:代表一定的虚拟用户3、取样器:发送请求的最小单元4、逻辑控制器:控制组件的执行顺序5、前置处理器:在请求之前的操作6、后置处理器…

用sqlite制作对局记录管理

1. sqlite简介 sqlite是一款非常轻便小巧的数据库,以C语言开发,已流行了数十年,据说是世界上部署最多的数据库。为什么是部署最多的呢?因为它根本不需要数据库服务器,且可以在任意设备、任意操作系统上部署。因此&…

服务宕机、线上环境内存溢出OOM分析思路

前言 平时工作中,肯定会遇到哪个产品经理突然来找,说服务器又挂了,怎么又用不了啦!类似的紧急情况,遇到这种情况不要慌,我提供以下几点紧急补救思路。 1)重启大法保命 2)确认是否新…

5分钟上手浏览器插件测试——Eolink Apikit

Eolink Apikit 研发管理和自动化测试产品中,提供了多种发起 API 测试的方式: 服务器测试:通过 Eolink Apikit 官方远程服务器发送请求,不需要安装任何插件,但是无法访问本地服务器(localhost)、内网、局域网。插件测试…

Qt中,将一个结构体转为qbytearray后,如何将这个qpqbytearray重新恢复为之前的结构体

在 Qt 中,如果你有一个自定义的结构体,并将其转换为 QByteArray,然后想要将 QByteArray 转换回原始的结构体,你可以使用 Qt 的 QDataStream 类来实现这个转换过程。 首先,假设你有一个自定义的线段结构体如下&#xf…

Git Status 中文乱码解决

中文的文件名,全是乱码 解决: git config --global core.quotepath false

年终汇报这么写,升值加薪必有你!

#01 你这么能干, 老板知道吗? — 打工人最怕什么? 最怕你忙前忙后,干活一大堆,气出一身结节,锅还没少背,最后升职加薪没有你,出国旅游不带你;更怕你日常996&#xf…

基于深度学习的图像分割

摘要 遥感图像分割是利用遥感技术获取的高分辨率图像进行像素级别的分类,将图像中的不同物体或不同地物提取出来的过程。这个过程对于遥感应用具有重要意义,因为它能够提取出地物和地表特征,如河流、道路、建筑、植被、水体等,并且…

同义词替换器降低论文重复率的最新技术动态

大家好,今天来聊聊同义词替换器降低论文重复率的最新技术动态,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧,可以借助此类工具: 标题:同义词替换器降低论文重复率的最…

从旺店通·企业版到金蝶云星空通过接口配置打通数据

从旺店通企业版到金蝶云星空通过接口配置打通数据 对接系统:旺店通企业版 旺店通是北京掌上先机网络科技有限公司旗下品牌,国内的零售云服务提供商,基于云计算SaaS服务模式,以体系化解决方案,助力零售企业数字化智能化…

MySQL数据库知识点简易总结篇

SQL数据库简易版笔记 SQL(结构化查询语句):可操作世界上所有的关系型数据 关系数据库 建立在关系模型基础上的数据库。简单来说,关系型数据库是多张能互相连接的二维表组成的数据库。其优势有: 都是表结构&#xf…