dsh-screenshot:DSH 下的全局快捷键截屏与框选粘贴

前言

在 DSH(DeepSeek Harness)里写提示、贴图、给智能体喂上下文时,截图往往要切到系统工具或第三方软件,再拖文件或找路径。流程一断,对话节奏就慢下来。下面介绍社区插件 dsh-screenshot(维护者 huhuai-ni):在 DSH 桌面端运行期间注册全局热键,支持整屏、当前窗口或微信式拖框选区,截图落盘后还可自动进剪贴板,便于在输入框里直接 Ctrl+V。

这是什么

dsh-screenshot 是 DSH 生态里的客户端类插件,仓库 huhuai-ni/dsh-screenshot,社区目录页见 SkillHub 条目。它解决的是:在 Windows 上、不离开 DSH 工作流的前提下,用自定义快捷键完成截屏、浏览最近截图,并通过插件工具在对话或自动化里引用路径。

插件以当前 DSH 进程权限运行;安装前建议自行查看源码与 MIT 许可证。SkillHub 为独立社区目录,与 DeepSeek / 幻方无官方从属关系。

核心功能

已核实能力如下(以仓库 README 为准):

  • 全局快捷键:默认 Ctrl+Alt+S,可在设置里修改;支持 Ctrl / Alt / Shift / Win 组合,示例写法包括 F9、PrintScreen、Ctrl+Shift+F12 等。
  • 三种范围:region(默认,拖框选区)、full(整屏)、window(当前前台窗口)。区域模式下按热键后屏幕冻结、整屏变暗、十字光标拖框,框内保持原色并显示尺寸,松手保存框内 PNG;中途 Esc 取消。
  • 保存与浏览:截图存到可配置目录(默认 图片/dsh-shot);设置页提供截图墙,可查看最近图片。
  • 剪贴板:区域选完松手后,除保存 PNG 外,图片同时写入剪贴板,可在 DSH 输入框直接粘贴。
  • 插件工具:shot_capture(立刻截图并返回路径)、shot_latest(最近一张)、shot_list(最近 N 张)、shot_hotkey(查看或修改快捷键)。

平台与运行条件:仅 Windows(Win32 热键注册 + System.Drawing 抓屏)。快捷键仅在 DSH 运行期间有效;退出 DSH 后热键 unregister。

安装与启用

官方安装命令:

dsh plugin --profile desktop add dsh-screenshot

安装后打开 DSH:设置 → 插件 → 截屏,修改快捷键、选择范围(region / full / window)、选择保存目录,点击 保存并注册 使热键生效。

典型用法

框选截图并粘贴到对话

  1. 确保 DSH 桌面端已启动且插件已保存并注册热键。
  2. 按配置的全局快捷键(默认 Ctrl+Alt+S)。
  3. 在 region 模式下拖框选区,松手;若仅需整屏或当前窗口,在设置里改为 full 或 window。
  4. 回到 DSH 输入框,Ctrl+V 粘贴剪贴板中的图。

通过工具立即截图

在支持 DSH 插件工具的场景下,可调用 shot_capture 立即截图并拿到文件路径;需要最近文件时用 shot_latest 或 shot_list。

设置页还通过 /api/shot/* 改配置、触发立即截图与读图(实现细节见 README「原理」一节)。

实现要点与维护者踩坑(供排查参考)

后端在插件启动时拉起隐藏 PowerShell,用 Win32 RegisterHotKey 注册热键;触发后执行 scripts/capture.ps1,经 System.Drawing 输出 PNG。README 中记录的两点值得留意:

  1. PowerShell 5.1 下脚本第一行不宜是中文注释(无 BOM UTF-8 可能导致 param( 解析失败),应把 param( 放在首行。
  2. 热键回调不宜依赖 PowerShell 的 $form.add_Pressed 事件;维护者改为 C# 内 GetMessage 循环直接截图。中文乱码问题通过脚本改为 UTF-8 with BOM 修复;覆盖层失去焦点时通过 OnDeactivate 关闭,避免 invisible 窗口占用后续热键。

适用场景与注意

适合:在 Windows 上使用 DSH 桌面端、需要频繁截屏并贴回对话或保存到固定目录的开发者;希望用全局热键而不是每次打开单独截屏软件的用户。

注意:

  • 非 Windows 环境无法使用本插件。
  • 依赖 DSH 常驻;长时间不用时可关闭 DSH,热键即失效。
  • README 早期「限制」一节曾写区域截取在路线图中;后续版本说明已加入微信式拖框与剪贴板粘贴,以当前 README 功能描述为准。
  • 安装插件等同于信任其 PowerShell / Win32 行为,请从 GitHub 核对 scripts/ 与 cordis.patch.yml 后再在生产环境启用。

结尾

dsh-screenshot 把「热键 → 选区 → 存盘 → 剪贴板 → 粘贴进 DSH」串成一条短路径,并暴露 shot_* 工具供自动化使用。进一步了解可访问 SkillHub 插件页 与 GitHub 仓库。

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

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

小夜