通过 Windows UI Automation API 自动定位元素,实现 WorkBuddy 桌面端每日签到。
使用 Windows UI Automation API (UIA) 定位 WorkBuddy 界面元素,不使用任何硬编码坐标:
在终端中执行以下命令:
# 克隆仓库
git clone https://cnb.cool/i.o/workbuddy_checkin.git
# 复制技能到 WorkBuddy skills 目录
xcopy /E /I workbuddy_checkin %USERPROFILE%\.workbuddy\skills\workbuddy_checkin\
# 清理临时文件
rmdir /S /Q workbuddy_checkin
Python 依赖(uiautomation)会在首次运行时自动安装。
告诉小龙虾:
安装技能 https://cnb.cool/i.o/workbuddy_checkin,必须使用git clone命令
小龙虾会自动完成克隆、复制、安装依赖的全部操作。
python %USERPROFILE%\.workbuddy\skills\workbuddy_checkin\scripts\checkin.py
首次运行时,脚本会自动检测 WorkBuddy 是否启用了调试模式:
签到测试成功后,必须创建 WorkBuddy 自动化任务实现每日自动签到。
告诉小龙虾:
帮我创建一个每日签到的自动化任务,每天早上8点执行
小龙虾会自动创建自动化任务:
⚠️ 自动化运行时需要确保 WorkBuddy 桌面端处于运行状态且已登录。
| 状态 | 弹窗显示 | 脚本行为 |
|---|---|---|
| 未签到 | "立即领取" | 点击领取 |
| 签到成功 | "已到账"(最可靠)或 +100/+1000 | 确认成功 |
| 已签到 | "已到账" / 100 / 1000 | 跳过,直接关闭弹窗 |
💡 判断优先级:「已到账」>「100/1000」>「立即领取消失」。「已到账」是最可靠的签到成功标识。
连续签到7天,第7天奖励 1000 Credits(而非 100)。
版本号使用 git commit hash 前 8 位。
签到脚本每次执行时会自动检测是否有新版本,发现新版本时会提示更新。
# 手动检测更新
python scripts/update.py --check
# 自动热更新
python scripts/update.py --update
├── SKILL.md # WorkBuddy 技能描述文件 ├── VERSION # 版本号(git commit hash 前8位) ├── scripts/ │ ├── checkin.py # 签到主脚本 │ └── update.py # 版本更新脚本 └── README.md # 本文件
之前尝试过其他方案:
UIA 方案直接读取 WorkBuddy 窗口的 UI 元素树,精确定位按钮位置,完全自适应分辨率。
| 元素 | 识别方式 | 不依赖 |
|---|---|---|
| 头像按钮 | Agents tabs 锚点 + 父容器中最高按钮 | 昵称、坐标 |
| 签到按钮 | 全窗口搜索 "立即领取" + "今日礼包已到账" 验证 | 昵称、坐标 |
| 点击交互 | UIA InvokePattern / LegacyIAccessiblePattern | 硬编码像素 |
| 成功标识 | TextControl/ButtonControl 含 "今日礼包已到账"(唯一) | 数字误判 |
Electron 应用默认不暴露 DOM 到 UIA 树。添加 --force-renderer-accessibility 参数后,Electron 会将 DOM 元素映射到 UIA 树,使得 UIA 可以定位到每个按钮、文本框等元素。
Copyright (c) 2026 i.o