核心用法
Handsfree Windows Control 是一套基于 Windows UI Automation (UIA) 与 SendInput 的本地自动化工具链,通过 handsfree-windows CLI 实现对原生 Windows 应用的可编程操控。核心能力覆盖四大环节:
1. 应用启动与窗口管理
hf start --app "应用名"从系统启动应用hf list-windows --json枚举窗口,hf focus精准聚焦
2. UI 发现与选择器构建
hf tree导出完整 UIA 树(支持深度/节点数限制)hf list-controls表格化展示控件层次hf inspect --json光标悬停即时探测控件属性- 自动生成基于
auto_id/control_type/name/path的稳健选择器
3. 交互执行
hf click/hf type:基于选择器的精准点击与文本输入hf drag-canvas:专为画布类应用(Paint 等)设计的 SendInput 级拖拽,确保起点位于检测到的内容区域内
4. 验证与录制
hf resolve验证选择器有效性- 支持宏录制回放,构建可复用自动化流程
显著优点
- 非侵入式架构:纯本地 CLI 调用,不注入 DLL,不修改目标进程内存
- 人类级模拟:SendInput 模拟真实鼠标/键盘事件,绕过简单反自动化检测
- 画布原生支持:
drag-canvas解决传统 RPA 工具难以处理绘图软件的问题 - 零硬编码:运行时动态发现 UI 结构,适配应用版本更新
潜在局限
- 平台锁定:仅支持 Windows 10/11,依赖 UIA 框架
- 性能边界:
--max-nodes 30000限制下,复杂应用(如大型 IDE)的完整树导出可能耗时数秒 - 凭证禁区:明确禁止自动输入密码/2FA,需人工介入登录流程
- 反检测限制:面对游戏级反作弊或企业级 EDR 防护时,SendInput 仍可能被拦截
适合人群
- 需自动化 legacy Windows 桌面应用的开发者/运维人员
- 构建 AI Agent 工作流、需要「像人类一样操作电脑」的 OpenClaw 技能作者
- 画布类软件(设计、绘图)的自动化测试团队
常规风险
| 风险类别 | 说明 | 缓解策略 |
|---------|------|---------|
| 误操作风险 | 破坏性操作(删除/发送)需显式确认 | 强制人机确认流程 |
| 坐标漂移 | 多显示器/DPI 变化导致点击偏移 | 优先 UIA 选择器,后备 `inspect` 校准 |
| 应用状态依赖 | 弹窗遮挡、加载延迟导致选择器失效 | 前置 `list-windows`/`resolve` 验证 |
| 权限提升 | 部分控件需管理员权限访问 | CLI 以目标应用同级权限运行 |