dsh-wsl-uia: 从 WSL 观察并操作 Windows UI

DeepSeek Harness 理念是「一切皆插件」。在 WSL 环境中开发智能体时,若要操作宿主机的 Windows 图形界面,通常需要绕过权限隔离或寻找复杂的 IPC 通道。下面介绍 dsh-wsl-uia 插件,它直接从 WSL 内部提供 Windows UI Automation(UIA)的观察与操作能力。

插件定位

这是一个由用户 173787247 维护的插件。它允许在 WSL 中枚举顶层窗口,读取受控范围的元素树,并使用基于观测的句柄来识别元素。它属于 dsh-wsl-kit 的一部分。

核心功能

该插件提供了以下能力:

  • 枚举顶层窗口
  • 读取受控范围的元素树
  • 支持基于观测的句柄
  • 按控件类型和可操作性查找控件
  • 通过位置或名称调用控件

安装

使用官方提供的命令进行安装:

dsh plugin --profile web add github:173787247/dsh-wsl-uia

典型用法

通过 uia_tree 命令进行操作。以下是几种常见的调用方式:

列出所有顶层窗口:

uia_tree action=windows

读取特定进程的元素树结构,限制深度和元素数量:

uia_tree action=tree pid=1234 maxDepth=6 maxElements=200

查找可操作的按钮控件:

uia_tree action=find controlType=Button actionableOnly=true

适用场景与注意事项

环境要求

  • 插件要求 DeepSeek Harness 运行在 WSL 内部。
  • 宿主机 Windows 上必须存在标准路径的 PowerShell(插件会自行查找)。

技术细节

  • 句柄格式:每个元素携带的句柄格式如 1790525657168.6,点号前的数字是观测的时间戳(epoch),这使得基于旧句柄的引用依然可识别。
  • 元素索引:在窗口存活时,元素索引不是稳定的唯一标识,两次遍历同一棵树可能会得到不同的索引结果。
  • 控件调用:在调用控件时,应优先传递 expectName 参数给 win_invoke,而不是仅仅依赖位置。

兼容性

  • 插件版本:dsh-wsl-uia 0.1.0
  • 依赖要求:DSH 版本 ≥ 0.1.2
  • 运行环境:Node.js >= 18

结语

通过这个插件,可以在 WSL 环境中实现跨系统的 UI 操作。更多细节请查阅目录页或 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜