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,这样就可以通过webhook让机器人在群里发消息了。
以前直接在钉钉的群里就可以创建机器人,现在新版钉钉需要去官网创建。
官方教程链接:https://open.dingtalk.com/document/robots/custom-robot-access/
(2)安装必要的 Python 库。在终端或命令提示符中执行以下命令:
pip install pynput schedule dingtalkchatbot
pynput: 用于捕获全局键盘、鼠标点击。
schedule: 用于定时任务触发。
dingtalkchatbot: 这个最为关键,用于给钉钉机器人发消息。dingtalkchatbot的教程及开源链接(高手的项目):https://github.com/zhuifengshen/DingtalkChatbot
如果编译时遇到其他库的问题,总之就是按提示,缺什么安装什么。
3 代码实现
写代码!是不可能自己写代码的!
其实我现在很少写python,忽然想写点东西还真响应不过来,可是不怕,跟进技术潮流,我有ChatGPT。
首先依据自己的需求进行提问1(功能点1):
再是提问二(功能点2):
这样我们就得到了我们想要的代码,可是为什么要分开问呢?其实也可以一起问,但是我用的是免费的chatgpt3.5,对他的自信程度就没有那么高咯,所以挨个提问,逐渐递进。
当然得到最终代码后,我们还需要做一些微调,比如把自己的钉钉钩子替换上,发送到钉钉的信息格式调整为自己想要的格式等等。
3 执行
(1)启动程序,使用下面命令执行写好的python代码:
nohup python click_counter.py &
使用 nohup + &
表示不阻塞终端,在后台运行。
(2)打包,为了保持稳定性,也可以将代码打包成可执行文件后运行,这样会更加稳定一些,如果只是尝试一下可以忽略该步骤。
(3)设置开机启动,我的电脑一直不关机,就省略该步骤;而且不同的系统方法不同,这个可以自行查找教程。
4 结语
通过这个简单的 Python 脚本,你可以更加有趣地了解自己每天的工作习惯。记得保持好奇心,享受编程的乐趣!
你可以根据自己的需求扩展博客内容,添加更多关于如何使用 pynput、DingTalkChatbot 的说明,或者优化代码的方法。希望这个示例能为你的博客写作提供一些灵感。
5 整体代码
import time
import schedule
from pynput import mouse, keyboard
from dingtalkchatbot.chatbot import DingtalkChatbot
class ClickCounter:
def __init__(self, webhook, secret=None):
self.keyboard_clicks = 0
self.mouse_clicks = 0
self.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 += 1
def on_mouse_click(self, x, y, button, pressed):
if pressed:
self.mouse_clicks += 1
def daily_stats(self):
if self.keyboard_clicks == 0 or self.mouse_clicks == 0:
return
msg = f'> mac键盘- {self.keyboard_clicks} 次\n\n> mac鼠标- {self.mouse_clicks} 次\n\n🐟🐟又是摸鱼的一天🐟🐟'
self.xiaoding.send_markdown(title='今日工作量统计', text='#### 今日工作量:\n' + msg)
self.keyboard_clicks = 0
self.mouse_clicks = 0
def 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帮我干的咯。文章来源:https://www.toymoban.com/news/detail-773375.html
文章来源地址https://www.toymoban.com/news/detail-773375.html
到了这里,关于打破枯燥工作日,用Python统计键盘和鼠标点击次数,钉钉告诉你今天摸鱼了多少次!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!