DeepSeek Harness 插件介绍:dsh-wsl-wininput(WSL 下的 Windows 输入控制)

前言

在 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 命令。

核心功能

该插件提供了以下四个核心能力:

  1. Invoke UI Automation 元素:直接激活特定的界面元素。
  2. Send keys to chosen window:向目标窗口发送文本输入。
  3. Send clicks to chosen window:向目标窗口发送鼠标点击。
  4. 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 仓库。

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

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

小夜