dsh-xiangwriter-screen-control:Windows 桌面自動化工具集

前言

DeepSeek Harness(DSH)的插件化架構讓開發者可以按需擴展能力。在 Windows 平臺上,讓智能體直接操作桌面是常見需求,但直接調用系統 API 既繁瑣又缺乏統一接口。dsh-xiangwriter-screen-control 提供了一套基於 Win32 的屏幕控制工具,通過 DSH 的插件機制集成,讓智能體能夠查看桌面、操作鼠標鍵盤、讀取 UI Automation 樹,並管理窗口。

插件介紹

這是一個面向 Windows 的屏幕控制插件,由 xiangwriter-dev 維護。它提供六個 screen_* 工具,使智能體能夠像人一樣操作桌面:截圖、移動/點擊/拖拽/滾動鼠標、輸入 Unicode 文本、發送組合鍵、讀取 UI Automation 樹、聚焦窗口,並等待 UI 變化。與 Codex 的 computer-use 插件類似,但專爲 DSH 在 Windows 上設計,無需 MCP 服務器或編譯環境,僅依賴一個 PowerShell 5.1 進程。

核心功能

插件提供以下工具:

  • screen_capture:截圖桌面、窗口或區域,返回文件路徑、幾何信息和(支持圖像的模型)圖像塊。支持 PNG/JPEG 格式和可選縮放。
  • screen_pointer:移動鼠標、點擊(單擊、雙擊、右鍵、中鍵)、拖拽、滾輪滾動。支持屏幕座標或圖像內座標映射。
  • screen_keyboard:輸入 Unicode 文本(包括中文、emoji)、發送組合鍵(如 ctrl+shift+t)、通過剪貼板粘貼。
  • screen_windows:列出頂層窗口,或通過標題/句柄聚焦窗口。
  • screen_ui:讀取窗口的 UI Automation 樹,包含控件類型、名稱、automation id、矩形、啓用/離屏狀態和值。
  • screen_wait:睡眠或等待窗口標題出現。

插件默認啓用安全機制:桌面輸入通過 inputPolicy: "ask" 審批,首次輸入操作需要授權;Ctrl+Alt+Esc 熱鍵可在任何輸入操作時緊急停止輸入 30 秒;每次操作都會報告實際讀取的鼠標位置。截圖和 UI 樹查詢無需審批。

安裝與啓用

從 GitHub 安裝(推薦):

dsh plugin add github:xiangwriter-dev/dsh-xiangwriter-screen-control

從本地檢出安裝:

git clone https://github.com/xiangwriter-dev/dsh-xiangwriter-screen-control.git
dsh plugin add /absolute/path/to/dsh-xiangwriter-screen-control

從發行版 tarball 安裝:

dsh plugin add https://github.com/xiangwriter-dev/dsh-xiangwriter-screen-control/releases/latest/download/dsh-xiangwriter-screen-control.tgz

安裝後,工具在下一輪對話中可用。在 DSH 桌面應用的設置中,插件行名爲「Screen Control」。

配置

插件行支持以下配置項(均爲可選,默認值如下):

inputPolicy: ask            # ask | allow | deny
capture:
  maxWidth: 1600            # 截圖縮放寬度
  format: png               # png | jpeg
  quality: 82               # JPEG 質量
  keepShots: 20             # 保留截圖數量
failsafe:
  enabled: true
  hotkey: ctrl+alt+esc
  cooldownMs: 30000
bridge:
  command: ''               # PowerShell 路徑覆蓋
  timeoutMs: 15000          # 每次操作超時
  restartLimit: 2           # 允許的連續重啓次數
  idleTimeoutSec: 1800      # 空閒超時(秒)

inputPolicy 取值說明:
- ask:默認,會話中首次指針或鍵盤操作請求審批,審批在會話內有效。
- allow:不提示(僅用於完全信任的會話)。
- deny:只讀,僅截圖、窗口和 UI Automation 查詢可用,拒絕輸入。

典型用法

先列出目標窗口,再截圖確認,然後點擊並輸入:

  1. screen_windows { action: "list", title: "記事本" } — 確認目標已打開
  2. screen_capture { window: "記事本" } — 查看狀態
  3. screen_pointer { action: "click", x: 640, y: 520 } — 點擊文本區域
  4. screen_keyboard { action: "type", text: "…" } — 輸入文本
  5. screen_capture { window: "記事本" } — 驗證文本已寫入

截圖中的像素座標可直接用於點擊,插件會自動映射回屏幕座標:

// 1) 截圖返回:source {x:0,y:0,width:2560,height:1600}, scale 0.625
{ "name": "screen_capture", "arguments": { "max_width": 1600 } }

// 2) 點擊截圖中的像素點
{ "name": "screen_pointer", "arguments": { "action": "click", "x": 400, "y": 300, "coordinate_space": "image" } }

適用場景與注意事項

適合需要智能體在 Windows 上執行自動化任務的場景,如批量表單填寫、自動化測試、桌面應用操作等。

注意事項:
- 插件在當前 DSH 進程權限下運行,截圖和 UI 樹包含屏幕所有內容,請勿在包含敏感信息的桌面上使用。
- 受 Windows UIPI 限制,向更高完整性級別(管理員)進程發送合成輸入時會失敗,需要將 DSH 運行在同一完整性級別。
- 鎖定屏幕無法截圖或操作,會返回錯誤。
- 插件不訪問網絡,僅通過 stdin 接收 JSON 行並在臨時目錄生成截圖文件。

總結

dsh-xiangwriter-screen-control 爲 DSH 提供了一套輕量、安全的 Windows 桌面控制工具集,無需額外依賴或 MCP 服務器,通過插件機制集成。對於需要在 Windows 上構建智能體應用的開發者,這是一個可落地的選擇。

  • 目錄頁:https://www.skillhub.cn/plugins/xiangwriter-dev/dsh-xiangwriter-screen-control
  • GitHub:https://github.com/xiangwriter-dev/dsh-xiangwriter-screen-control
羽毛球分组比赛记分
小程序二维码

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

小夜