首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >#WorkBuddy# 从「每天手动签到」到开机自动提醒:一次 Windows 桌面提醒的踩坑记录(含可复用脚本)

#WorkBuddy# 从「每天手动签到」到开机自动提醒:一次 Windows 桌面提醒的踩坑记录(含可复用脚本)

原创
作者头像
用户12831587
发布于 2026-10-20 17:48:39
发布于 2026-10-20 17:48:39
1680
举报

一、起因:100 积分不多,但断签很难受

WorkBuddy 的每日签到是最稳的免费积分来源:连续第 1–6 天每天 100 积分,第 7 天 1000 积分,7 天一循环。一个月全勤大约 4000 积分,对轻度使用的免费用户来说基本够用。

问题是它的领取方式是手动的:客户端左下角头像 →「领取今日礼包」。忙起来很容易忘,一旦断签,连续天数要重新计算。

我的真实需求只有一句话:别让我每天都记着这件事。

二、先做减法:哪些能自动,哪些不能

动手前我先把路径摸了一遍,结论如下(这一步很关键,能省掉大量无效折腾):

渠道

能否自动化

说明

每日签到礼包

❌ 不能

按钮只存在于登录后的客户端界面,无公开接口

社区发文赚积分

❌ 半自动

内容可以交给 AI 写,但提交必须在登录态下操作

邀请好友

❌ 不能

需要分享链接给别人

需要特别提醒的是:网上存在所谓「一键代领」「自动签到脚本」,这类方案要么要求你交出账号登录凭证,要么靠模拟点击固定坐标。前者有盗号和风控风险,也违反服务条款;后者在客户端一改版后就失效,甚至可能点到界面上别的位置。

所以,签到这件事在技术上的正解不是「代点」,而是「把要注意的成本降到最低」。目标改成:开机时自动弹一次提醒,点一下就能进客户端。

三、方案:开机弹窗 + 每日去重

设计上有三个小要求:

  1. 不弹命令行黑框(用 VBS 拉起,窗口隐藏)
  2. 一天只提醒一次(避免每次解锁都弹)
  3. 延迟 90 秒再弹(避开开机瞬间的启动项高峰)

部件一共四个:

  • checkin-reminder.ps1:主脚本,负责去重判断、弹窗、按用户确认启动客户端
  • title.txt / body.txt:弹窗文案外置,改字不用动代码
  • WorkBuddy-Checkin-Reminder.vbs:放在「启动」文件夹里,用隐藏窗口方式调用脚本
  • last-run.txt:记录最近一次提醒日期,实现每日去重

四、核心脚本

启动项 WorkBuddy-Checkin-Reminder.vbs 的内容:

把它放进 %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\ 即完成安装。

五、踩到的四个坑

坑 1:中文文案乱码。 PowerShell 5.1 读取无 BOM 的 UTF-8 文件时,中文大概率变乱码。解决办法是不要用 Get-Content,而是显式构造 UTF8Encoding 后用 File::ReadAllText 读取,并去掉文件开头可能残留的 BOM 字符。另外,脚本本身尽量保持纯 ASCII,中文只放在外置文案文件里,这样脚本用任何编码保存都不会出错。

坑 2:执行策略拦脚本。 默认策略下 .ps1 直接双击会被拦。用 -ExecutionPolicy Bypass 在命令行层面绕过即可,不需要改系统全局策略(改全局策略影响面更大,不建议)。

坑 3:弹了黑框很难看。 Start-Process powershell 会闪一个控制台窗口。改用 VBS 的 sh.Run(..., 0, False),0 表示隐藏窗口,False 表示不等待,体验干净得多。

坑 4:误判「脚本没跑」。 我第一次测试后去读日志,看到内容为空,判定失败。实际上原因是时序:弹窗是阻塞的,人还没点,日志里自然只有前两行;加上有些工具重定向输出到同一个文件时,会把已有内容覆盖掉。等弹窗关闭后重新读,日志完整记录了「start → showing popup → popup closed, result=1 → launched WorkBuddy」。

教训很直接:给这类后台脚本加自己的日志文件,并且用 Add-Content 追加而不是覆盖,否则你永远在猜它到底跑没跑。

六、验证结果

装上后连续观察了几次开机/重登:

弹窗出现、确认后拉起客户端、同一天不重复提醒,三个行为都符合预期。

七、可复用的思路

这套结构不只用于签到提醒,任何「每天要做一次的桌面动作」都能套:

  • 日报提交、工时填写、健康打卡、每日备份检查
  • 只需把 body.txt 里的文案换掉,把脚本末尾的启动目标换成对应程序或网址(Start-Process "https://...")
  • 如果不想每天点确认,可以把 Popup 换成不阻塞的通知,但那就失去了「顺手打开目标」的便利

八、小结

  • 签到类操作没有公开接口时,别指望「代领」,把提醒做到位才是可持续的解法
  • 桌面小工具的价值往往不在代码多复杂,而在去重、延迟、静默这三个细节
  • 调试后台脚本一定要有自己的日志,并且追加写入

如果你也在被每日签到困扰,这套脚本十分钟就能搭好。欢迎在评论区交流你踩过的坑。

#WorkBuddy #AI办公 #效率工具 #PowerShell

备选标题

  • #WorkBuddy# 别再手动签到了:用 20 行 PowerShell 做一个开机自动提醒
  • #WorkBuddy# 每日签到总是断签?我写了一个开机弹窗提醒(附完整脚本)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、起因:100 积分不多,但断签很难受
  • 二、先做减法:哪些能自动,哪些不能
  • 三、方案:开机弹窗 + 每日去重
  • 四、核心脚本
  • 五、踩到的四个坑
  • 六、验证结果
  • 七、可复用的思路
  • 八、小结
  • 备选标题
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档