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
羽毛球分组比赛记分
小程序二维码

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

小夜