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 倉庫。

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

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

小夜