赞
踩
是否曾想过,在一天的工作中,你到底点击了键盘多少次,或者鼠标点击了多少下?
是否好奇每天工作的时候,自己究竟有多努力?
本文将带你使用 Python,利用 pynput 监听键盘和鼠标事件,统计每天的点击次数,并通过钉钉机器人告诉你今天到底摸鱼了多少次。
效果如下图:
其实之前有做过一个类似的小软件:https://blog.csdn.net/weixin_42887343/article/details/121697536
而这次使用钉钉每天定时上传展示,不得不说钉钉的机器人是个非常好玩的好东西,企业微信也有类似的功能。
更多内容可以查看钉钉的官网机器人教程:
https://open.dingtalk.com/document/orgapp/webhook-stream-free-to-commercialization-announcement
(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
如果编译时遇到其他库的问题,总之就是按提示,缺什么安装什么。
写代码!是不可能自己写代码的!
其实我现在很少写python,忽然想写点东西还真响应不过来,可是不怕,跟进技术潮流,我有ChatGPT。
首先依据自己的需求进行提问1(功能点1):
再是提问二(功能点2):
这样我们就得到了我们想要的代码,可是为什么要分开问呢?其实也可以一起问,但是我用的是免费的chatgpt3.5,对他的自信程度就没有那么高咯,所以挨个提问,逐渐递进。
当然得到最终代码后,我们还需要做一些微调,比如把自己的钉钉钩子替换上,发送到钉钉的信息格式调整为自己想要的格式等等。
(1)启动程序,使用下面命令执行写好的python代码:
nohup python click_counter.py &
使用 nohup + &
表示不阻塞终端,在后台运行。
(2)打包,为了保持稳定性,也可以将代码打包成可执行文件后运行,这样会更加稳定一些,如果只是尝试一下可以忽略该步骤。
(3)设置开机启动,我的电脑一直不关机,就省略该步骤;而且不同的系统方法不同,这个可以自行查找教程。
通过这个简单的 Python 脚本,你可以更加有趣地了解自己每天的工作习惯。记得保持好奇心,享受编程的乐趣!
你可以根据自己的需求扩展博客内容,添加更多关于如何使用 pynput、DingTalkChatbot 的说明,或者优化代码的方法。希望这个示例能为你的博客写作提供一些灵感。
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声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/839564
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。