前言¶
在 DeepSeek Harness (DSH) 的插件生態中,擴展能力通常通過添加特定功能的插件來實現。對於需要在 WSL(Windows Subsystem for Linux)環境中運行的智能體或腳本,直接控制 Windows 桌面應用是一個常見需求。dsh-wsl-wininput 插件解決了這一痛點,它允許 WSL 中的進程通過 UI Automation 協議操作 Windows 界面。
插件簡介¶
dsh-wsl-wininput 是一個 DeepSeek Harness 插件,專注於從 WSL 環境向 Windows 窗口發送輸入信號。它主要提供三種操作能力:調用 UI Automation 元素、向指定窗口發送按鍵,以及在指定座標點擊。該插件運行在 WSL 內部,通過調用本地的 PowerShell 來實現與 Windows 的交互,不會搶奪當前窗口的焦點。
安裝與啓用¶
安裝該插件需要使用 DSH 的插件管理命令。在 WSL 終端中執行以下操作即可完成安裝:
dsh plugin --profile web add github:173787247/dsh-wsl-wininput
安裝完成後,即可在 DSH 的配置或腳本中調用該插件提供的 win_invoke 命令。
核心功能¶
該插件提供了以下四個核心能力:
- Invoke UI Automation 元素:直接激活特定的界面元素。
- Send keys to chosen window:向目標窗口發送文本輸入。
- Send clicks to chosen window:向目標窗口發送鼠標點擊。
- Target specific window by PID:通過進程 ID (PID) 精確鎖定操作目標窗口。
典型用法¶
使用 win_invoke 命令時,需要通過 action 參數指定具體行爲,通過 pid 參數指定目標窗口的進程 ID。
1. 調用界面元素
當需要點擊或激活某個按鈕時,必須指定元素的名稱和類型。expectName 是必填參數。
win_invoke action=invoke pid=1234 expectName="Save" expectType=Button
2. 向窗口輸入文本
在目標窗口中輸入指定字符串。
win_invoke action=type pid=1234 text="hello"
3. 在窗口指定座標點擊
通過 x 和 y 參數指定點擊位置。
win_invoke action=click pid=1234 x=100 y=40
注意事項¶
在使用該插件時,需要注意以下幾點以確保操作的準確性:
- 元素匹配的唯一性:元素是通過名稱查找的,匹配結果必須是唯一的。如果未找到匹配元素(通常意味着元素已消失)或找到多個匹配項(通常意味着名稱過於寬泛),操作將被拒絕,而不是嘗試最佳匹配。
- 參數依賴:在使用
invoke操作時,expectName是必填參數。 - 窗口遍歷的穩定性:早期版本曾嘗試通過 UI Automation 樹的索引來定位元素,但測試發現對實時窗口進行多次遍歷時,索引位置可能會發生變化,導致誤操作。當前版本已移除對索引的依賴,改用更穩定的名稱匹配方式。
環境要求¶
該插件對運行環境有一定要求:
- 操作系統:Windows 系統,且已安裝 WSL。
- 運行環境:DeepSeek Harness 必須在 WSL 內部運行。
- 依賴路徑:PowerShell 需要位於標準路徑下,插件會自動查找 PowerShell。
結語¶
dsh-wsl-wininput 插件爲在 WSL 中開發的智能體提供了基礎的 Windows 界面控制能力。通過 PID 定位窗口和 UI Automation 元素調用,開發者可以構建更復雜的自動化腳本。更多細節可參考插件目錄頁或 GitHub 倉庫。