我写了个"下班就跑"的小工具,还能配合node-red自动化
事情是这样的。
上个月有天下班,我收拾好东西准备走人,结果电脑上开了七八个窗口——IDE、数据库客户端、一堆浏览器标签页、还有几个没保存的文档。一个个关吧,太慢;直接按电源吧,又怕丢东西。
当时我就想:有没有一个工具,能让我**到点自动关机,而且关机前还能给我留个反悔的机会**?
搜了一圈,要么功能太简陋,要么界面丑得没法看。于是干脆自己动手写了一个。
然后它就变成了现在这个样子。

---
它到底能干嘛
先说最基础的功能:**定时关机**。
你可以按星期设置,比如周一到周五晚上11点自动关,周末不关。也可以直接选"仅工作日",不用一个个勾。时间精确到分钟,到点就执行。
但光定时关机太普通了,我还加了几个我觉得很实用的东西。
**关机前会弹一个倒计时窗口。**
默认30秒,你可以设成5秒到600秒之间的任意值。这30秒里屏幕上会有一个大大的倒计时数字,底下有个红色按钮——"取消关机"。
**关机方式用的是 Windows 的安全关机 API。**
不是那种粗暴的`shutdown /s /f`,而是`InitiateSystemShutdownEx`,会先通知所有正在运行的程序"我要关机了,你们赶紧保存数据"。所以开着没保存的文档也不会丢东西,程序能优雅退出。

远程关机?对,你没看错
这个功能一开始是给我自己用的。
我在家里搭了个 Home Assistant,想实现一个场景:躺在床上说一句"我要睡了",全屋灯灭、电脑也自动关。
于是我给这个小工具加了**MQTT 远程关机**。
填上你的 MQTT 服务器地址、端口、订阅主题,它就会一直监听。收到`shutdown`、`off`、`poweroff`、`关机`或者`1`这些消息,就触发关机流程。
这意味着什么?
玩 Home Assistant 的,可以把它接入智能家居场景
管服务器的,可以批量远程关掉一批 Windows 机器
玩 Node-RED 或者 ESP32 的,也能联动
而且 MQTT 支持用户名密码认证,不是裸奔的。

---
一些我觉得做得还不错的地方
**最小化到托盘,不占任务栏。**
关掉窗口它不会退出,而是缩到右下角系统托盘里。双击图标恢复窗口,右键可以退出或者查看关于信息。安静、不打扰。
**开机自启动,设一次就不用管了。**
勾上"开机自启动",以后每次开机它自己就跑起来了。用的是注册表`HKEY_CURRENT_USERRun`,干净,不拖慢开机速度。
**防重复运行。**
不会出现开了好几个实例的情况,内部用 Mutex 做了互斥。
---
怎么获取

这个小工具完全免费,双击 exe 就能用,不需要安装。
关注公众号**「工具箱达人」**,回复"003"就能拿到下载链接。
后续有新功能或者新工具,也会第一时间在公众号上发。
最后说两句
写这个小工具的初衷很简单:**让电脑在该关的时候关,不该关的时候别瞎关。**
如果你也有类似的场景——比如睡前想让电脑自动关、或者想用智能家居联动关机——可以试试看。
如果觉得好用,欢迎转发给需要的朋友。有什么建议或者 bug 反馈,也可以在下方留言,我尽量回复。
---
