dsh-print-screen:在 DSH 输入框里一键截屏并插入提示词

前言

在 DSH 里向模型说明界面问题时,纯文字往往说不清布局;把截图贴进输入框又常要切到系统截图工具、再粘贴回来。浏览器里的 DSH 桌面版 Host 是独立 node 进程,没有 desktopCapturer,渲染层也无法直接走 display media,因此「全屏冻结、拖框、插入附件」需要插件侧单独实现。下面介绍社区插件 dsh-print-screen(维护者 zrrrrrrr77):在输入框左下角增加剪刀按钮,在 Windows 上完成虚拟桌面截屏并写入当前会话。

这是什么

dsh-print-screen 给 DSH 桌面版输入框加一个剪刀按钮:点一下把整个虚拟桌面(所有显示器)按原位置、原像素冻结,在画面上拖矩形,松手后把该区域作为图片附件插入当前提示词框,同时另存一份 PNG 到会话目录。插件分类为联网工具(SkillHub 目录),实现上不依赖外部服务、无 API Key;截图仅在本机流转。当前 npm 包版本为 0.4.4,许可证 MIT,DSH 要求 >= 0.2.1-rc.3(engines.dsh),仅 Windows(10/11,需系统自带 Windows PowerShell 5.1 与 System.Drawing/WinForms)。

核心功能

输入框上的剪刀按钮

按钮样式与普通输入框按钮一致:透明背景、仅图标,不占额外宽度。装好后位于输入框左侧、「工作区内修改」左边;看不到时可刷新页面,必要时完全退出 DSH 再打开(宿主半边需重启才加载插件)。

冻结、框选、插入

整块虚拟桌面冻结,每张画面保持原位与原始像素;松手即裁剪并插入。默认在截图前隐藏 DSH 窗口,截完立即还原(含最大化状态),因此能截到被 DSH 挡住的窗口。按住 Shift 点剪刀,或按 Ctrl+Shift+Alt+1,则不隐藏 DSH,可连界面一起截。

插入走会话附件 API:缩略图出现在输入框下方,回车随消息发出;失败时退回合成粘贴事件,再不行复制到剪贴板并提示 Ctrl+V。附件名形如 screenshot-2026-10-26_22-31-05.png(本地时间,精确到秒)。同一张图还会复制到当前会话工作目录(session.cwd;配合 dsh-session-folder 即会话文件夹),同一秒内重复则自动加 -1、-2;目录不可写时静默跳过,不影响插入。

快捷键与取消

操作 行为
单击剪刀 截屏,先隐藏 DSH 窗口
Shift + 单击剪刀 截屏,不隐藏 DSH
Ctrl+Alt+1 同单击:截屏并隐藏 DSH
Ctrl+Shift+Alt+1 截屏但不隐藏 DSH
拖框 → 松手 裁剪、存会话文件夹、插入输入框(裁剪完 DSH 立即还原)
Esc / 右键 取消

快捷键按物理键位(event.code)判断;Shift+1 打出 ! 的布局也能触发 Ctrl+Alt+1 同类逻辑。

性能与实现概要

DSH 启动约 2.5 秒后会在后台拉起常驻截图助手 helper.ps1,避免每次截图重新起 powershell.exe。热态下点击到冻结画面出现约 0.15s;抓图用 BitBlt 直拷进常驻 DIB,并声明 Per-Monitor V2 DPI 感知,避免高 DPI 下画面被整体放大。助手异常时宿主会自动重启再试,不维护第二套脚本。

安装与启用

任选一种方式安装(将 --profile web 中的 web 换成你自己的 profile;DSH 桌面版建议在应用内插件页安装):

# 从 npm 安装
dsh plugin --profile web add dsh-print-screen

# 或直接从 GitHub 源码安装
dsh plugin --profile web add github:zrrrrrrr77/dsh-print-screen

也可以在 DSH 里打开 插件 → 发现,从社区插件市场安装。

典型用法

  1. 在任意对话的输入框左下角点剪刀(或 Ctrl+Alt+1)。
  2. 等待全屏冻结画面出现,用鼠标拖出矩形选区。
  3. 松手:选区 PNG 出现在输入框附件区,并写入会话目录;补充文字后回车发送。

若需要把 DSH 界面一并放进截图,用 Shift+单击剪刀或 Ctrl+Shift+Alt+1。框选过程中按 Esc 或右键可取消。

适用场景与注意

适合在 Windows 上使用 DSH 桌面版、需要把屏幕区域作为模型上下文(报错界面、布局、多显示器内容)的开发者。插件以当前 DSH 进程的用户权限执行随包发布的 powershell.exe -File helper.ps1 -ExecutionPolicy Bypass,安装前可在 GitHub 审查 helper.ps1 与 MIT 许可证;它只隐藏/还原进程名或标题匹配 DSH 的窗口,插件本身无网络请求。

已知限制:仅 Windows;冻结窗口为 TopMost,可能被其他 TopMost 窗口遮挡一角;截图期间 DSH 会被隐藏,若助手卡死(5 分钟超时被杀)需手动还原 DSH。

DSH 生态理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

链接

  • 目录页:https://www.skillhub.cn/plugins/zrrrrrrr77/dsh-print-screen
  • 源码与完整说明:https://github.com/zrrrrrrr77/dsh-print-screen
羽毛球分组比赛记分
小程序二维码

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

小夜