每天早上打开两个客户端,点两下领 100 积分------动作很简单,但连续做一个月,总会漏几天。漏掉的那几天,积分就是白丢的。
这篇文章记录我怎么把这件事彻底交出去:两个脚本、两个定时任务,最后打包成一个 Skill,换台电脑也能一键复现。全程零付费、零第三方工具,只用 Windows 自带的 PowerShell。
一、先说结论:效果长什么样
中午 13:00,电脑没人操作。Trae CN 的窗口被自动拉到前台,左下角头像被点开,账户面板弹出,「每日领 100 积分」那一行被点中,然后自动截图、写日志、收起窗口。整个过程不到 10 秒。
3 分钟后的 13:03,轮到 WorkBuddy:窗口置前,轮播卡片切回第一张「Buddy加油站」,点右下角领取按钮,截图存档。
| 任务 | 时间 | 做了什么 |
|---|---|---|
| TraeCN_DailyCheckin | 每天 13:00 | 点头像 → 点签到行 |
| WorkBuddy_DailyCheckin | 每天 13:03 | 切轮播 → 点领取按钮 |
为什么是 13:00 和 13:03 而不是同时?因为两个脚本都要抢前台窗口和鼠标。同时运行,第二个的点击会落到第一个的窗口上,两边都白跑。间隔 3 分钟是最稳的配置。
二、为什么不用接口,只能模拟点击
签到这类入口通常藏在客户端界面里,没有公开 API,也不走网页。能落地的方案只有一条:让程序像人一样去点。
Windows 提供了现成的能力:找窗口、置前、移动光标、发送点击。PowerShell 调几个 Win32 函数就能完成,不用装 Python、不用装 Selenium,也不用任何第三方库。
关键设计:坐标按窗口相对计算
头像不是屏幕绝对坐标 (x, y),而是「窗口左下角往右 36px、往上 33px」。这样窗口被拖动、放大、换显示器,脚本依然点得准。这一条决定了脚本能不能长期用下去。
三、第一步:把点击位置量出来
别猜坐标。先用脚本把窗口位置打印出来,再截图对照像素位置,量两三个点就够了。
# 打印窗口矩形,确认窗口在哪
$r = Get-WindowRect -Handle $hwnd
"L=$($r.Left) T=$($r.Top) W=$($r.Width) H=$($r.Height)"
然后截图,用画图工具把鼠标移到头像上,底部状态栏会显示像素坐标。换算成相对窗口左下角的偏移量,写进脚本常量。
四、第二步:写点击脚本
核心就三段:找窗口、置前、点击。下面是 Trae CN 的骨架,WorkBuddy 同理,只是点击目标不同。
# 1. 找窗口(没有就启动,最多等 30 秒)
$hwnd = Find-AppWindow -Keyword 'Trae CN'
# 2. 置前:先 SetForegroundWindow,失败就临时置顶
Show-Window -Handle $hwnd
Set-TopMost -Handle $hwnd -On $true
# 3. 点头像 → 等面板 → 点签到行
Invoke-Click -X ($rect.Left + 36) -Y ($rect.Bottom - 33)
Start-Sleep -Milliseconds 800
Invoke-Click -X ($rect.Left + 300) -Y ($rect.Bottom - 210)
这里有两个坑必须处理:
-
Windows 会阻止后台程序抢前台。
直接调用经常失败。做法是先把窗口置顶(TopMost),点完再取消,视觉上突兀一两秒,但成功率接近 100%。
-
点击后要留等待时间。
面板弹出、卡片渲染都需要几百毫秒。点完立刻点下一个目标,必然落空。
五、第三步:注册成每天自动执行
脚本能跑一次不等于能每天跑。用 Windows 任务计划程序注册,才能做到「开机就等我」。
$act = New-ScheduledTaskAction -Execute 'powershell.exe' `
-Argument '-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\签到\trae_checkin.ps1"'
$trg = New-ScheduledTaskTrigger -Daily -At 13:00
$set = New-ScheduledTaskSettingsSet -StartWhenAvailable `
-AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
$prn = New-ScheduledTaskPrincipal -UserId "$env:COMPUTERNAME\$env:USERNAME" `
-LogonType Interactive -RunLevel Highest
Register-ScheduledTask -TaskName 'TraeCN_DailyCheckin' `
-Action $act -Trigger $trg -Settings $set -Principal $prn -Force
三个参数值得说明:
-
-LogonType Interactive:必须能操作桌面。用后台服务方式跑,点不到任何东西。
-
-StartWhenAvailable:错过了时间(比如当时关机),开机后补跑一次。
-
-AllowStartIfOnBatteries:笔记本用电池时也照跑,不然中午拔了电源就不执行。
验证方法:右键任务「运行」,然后去看日志和截图。日志写 done、截图里按钮显示「已签到」,就是成功;如果按钮已经是「已签到」但你还没领过,说明当天早些时候已经领完了,不是失败。
六、第四步:封装成 Skill
脚本能跑,但下次想复用得翻聊天记录、找文件、改路径。封装成 Skill 之后,你只要说一句「帮我签到」,Agent 就知道该做什么、脚本在哪、失败了怎么排查。
一个 Skill 就是一个文件夹,核心是一个 SKILL.md:
daily-points-checkin/
├── SKILL.md # 触发条件 + 执行流程 + 排错表
└── scripts/
├── trae_checkin.ps1
└── wb_checkin.ps1
SKILL.md 的头部只需要两行:
name: daily-points-checkin
description: 每日自动签到领积分(Trae CN 与 WorkBuddy),通过 Windows PowerShell
模拟界面点击完成。当用户要求签到、领取每日积分或设置自动签到时使用。
description 是唯一被 Agent 用来判断「什么时候该用这个 Skill」的文字,触发词要写全:签到、领取积分、自动签到,一个都不能少。正文则写清楚:怎么跑、日志在哪、报错怎么读。
一个容易忽略的命名限制:
name 只能用小写字母、数字和连字符,而且必须和文件夹名一致。写成中文会加载失败------技能列表里直接消失,比英文名更难排查。想让它好认,把中文写进 description,那里会显示在技能列表的副标题。
七、在 Agent 里安装这个 Skill
Skill 分两种作用域,装哪一层决定了它能被谁用:
| 作用域 | 目录 | 生效范围 |
|---|---|---|
| 个人(全局) | %USERPROFILE%\.trae-cn\skills\ | 本机所有项目 |
| 项目级 | 项目根目录\.trae\skills\ | 仅该项目 |
签到这种通用能力,装个人级最合适。
方式一:手动安装(最直接,推荐)
-
下载文章末尾的 zip 包并解压;
-
把
daily-points-checkin整个文件夹放到%USERPROFILE%\.trae-cn\skills\; -
回到客户端,打开「插件市场 → 管理 → 技能 → 个人」,确认列表里出现它,开关是绿色;
-
对话里说「帮我签到」,看 Agent 是否调用。
方式二:命令行复制
# 解压后进入目录,把技能文件夹复制到个人技能目录
Copy-Item -Recurse -Force .\daily-points-checkin `
"$env:USERPROFILE\.trae-cn\skills\"
方式三:让 Agent 帮你装
把 zip 拖进对话,然后说「把这个技能装到个人技能目录并验证能加载」。Agent 会解压、校验 frontmatter、复制到位,再检查文件是否齐全。
装完怎么确认真的生效?看两处:技能列表里有没有它;对话里说触发语,Agent 有没有按 SKILL.md 的流程走。两处都对,才算装好了。
八、几个必须知道的限制
-
必须开机且解锁。
锁屏状态下点击落空,截图截到的也是锁屏界面。笔记本合盖休眠时不会执行,记得设置成「合盖不睡眠」或者干脆开着。
-
执行时会抢鼠标和前台窗口。
每次 3 到 10 秒。所以我把时间定在午休,人不在电脑前的时间段。
-
换了显示缩放比例,坐标要重调。
100% 调到 125% 或 150%,界面布局会变,需要重新量一次偏移量。
-
客户端改版会导致失效。
按钮位置一变,脚本就点偏。所以脚本里留了截图和日志------每次运行都留证据,失效时一眼能看出来。
九、下载
技能包含两个可直接运行的 PowerShell 脚本和一份完整的 SKILL.md,Windows 环境开箱即用,无需安装任何依赖。
【每日自动签到领积分 Skill v1.0】下载链接(长期有效,链接自带提取码,点开即用无需手动输入)
百度网盘:
https://pan.baidu.com/s/1GirwcXCa6Q1_D2s-f63QNw?pwd=rqhm
夸克网盘:
https://pan.quark.cn/s/ef9d688356fb?pwd=vvFd
迅雷云盘:
https://pan.xunlei.com/s/VP5PpmZJdVuZqKjv_vU0Rw_oA1?pwd=q62a
使用说明:任选一条链接打开即可下载 skill 压缩包,解压后按包内说明安装使用;某条失效可换用其他两条。
文件:每日自动签到领积分-skill-v1.0.zip(约 6.5 KB)
建议下载后先看一遍 SKILL.md 里的排错表,再动手运行。