跳到正文

Windows

UI Automation、完整性级别,以及为什么有些应用的树读不到。

Windows 上 agent-desktop 走 UI Automation。它没有额外的授权步骤, 代价是一条完整性规则决定了它能对一个应用做什么。

系统要求

Windows 10 1809 或更高,或 Windows Server 2019 或更高,x64 或 ARM64, 运行在已登录用户的交互式桌面上。

完整性级别

和终端同级完整性(integrity level)的应用无需额外授权。

读不到时的表现通常是树为空或元素缺失,而不是一个明确的权限错误, 所以先跑 agent-desktop permissions,确认权限报告和环境正常。

桌面

必须在已登录用户的交互式桌面上。会话被锁定、或者进程跑在非交互的窗口站里, 界面本身就不存在,可访问性树自然读不到。

启动应用

launch 只接受绝对路径,或 System32、Windows 目录下的裸文件名(可带可不带 .exe)。 它不能把显示名解析成可执行文件:launch "Google Chrome" 不行, 要给出 chrome.exe 的完整路径。

外壳界面

list-surfaces 列出每个进程的 window、focused、sheet 和 menu。 snapshot --surface 还能在不加 --app 时读取 taskbar、system-tray、 system-tray-overflow、start-menu 和 action-center。quick-settings 返回 INVALID_ARGS,并提示改用承载这些控件的 action-center。

能力表

能力 状态
可访问性树 支持(UI Automation)
点击 / 输入 / 键盘 支持
鼠标输入 支持
截图 支持
剪贴板 支持
应用与窗口管理 支持
通知 支持
外壳界面 窗口、菜单、任务栏、系统托盘、开始菜单、操作中心

二进制未签名,从浏览器下载可能触发 SmartScreen 或被杀毒软件隔离,npm 路径不会。 详见安装与权限。

本机能力表由二进制自己给出:

agent-desktop skills get platform

PowerShell

每个 ref 都要加引号。不加引号的 @token 在 PowerShell 里是散裂(splatting)运算符, 命令会被静默改形:

agent-desktop click '@s8f3k2p9:e8'
agent-desktop snapshot --app Explorer -i

输入关键词搜索…

↑↓ 导航↵ 选择Esc 关闭