ShotShelf 是一个面向 Windows 10/11 的本地截图中转架。
截图或复制图片进入剪贴板后,ShotShelf 会立即把它保存成真实 PNG 文件,并放进可贴边隐藏的缩略图抽屉。之后可以连续截图,再从抽屉把任意一张或多张图片拖到聊天框、浏览器上传区、资源管理器或其他支持文件拖放的程序。
0.3.1
v0.3.1 更新:
- 展开且未选择图片时,点击桌面、其他软件或任何 ShotShelf 窗口外区域会自动收起
- 已有图片被选中时,点击窗口外仍保持展开,保护多选与拖拽流程
- 列表内部空白只清空选择,不再触发收起
- 更新检查遇到临时 TLS / 网络失败时自动重试一次;仍失败会明确提示,不再误报“已是最新”
- 托盘菜单支持“开机启动”开关,并实时读取当前用户启动项的真实状态
截图架贴边收起后只露出一条窄标签,鼠标滑过完整露出,点击即可展开;截图会以缩略图卡片形式排列,可随时拖出。
- 监听 Windows 剪贴板中的图片
- 连续截图自动落盘,不会因下一次截图覆盖而丢失
- 半透明无边框抽屉,支持展开与收起
- 展开窗口可拖动,靠近屏幕边缘时自动吸附
- 收起标签整块可点击、可拖动,松手后吸附到最近的屏幕边缘
- 贴边标签自动缩进,只露出 10 DIP;鼠标划过完整滑出
- 两列缩略图卡片与时间显示
- 单击卡片:把该图重新写入剪贴板
- 双击卡片:使用系统图片查看器打开
- 拖动卡片:以真实 PNG 文件拖出
Ctrl/Shift多选后一次拖出多张- 展开且无选择时,点击 ShotShelf 窗口外区域自动收起;有选择时保持展开
- 展开时不保留旧选择:底部可点击“取消选择”,点击列表空白处也可清空选择;成功拖出后自动清空
- 固定截图:固定项不参与自动清理
- 删除单张、清理全部未固定截图
- 托盘菜单:显示/隐藏、开机启动(可勾选,实时反映真实状态)、暂停/继续监听、检查更新、打开缓存目录、退出
- 全局快捷键
Ctrl + Shift + Space:切换抽屉 - 顶部截图按钮:调用 Windows
ms-screenclip: - 单实例运行,重复启动会唤醒已有实例
- 本地日志与隔离自检
从 GitHub Releases 下载:
ShotShelf-v0.3.1-win-x64.zip
解压后运行 ShotShelf-windows-x64.exe。这是 x64 self-contained 单文件版本,不要求目标电脑预装 .NET Runtime。
程序目前没有代码签名,Windows 首次运行若出现 SmartScreen 提示,可选择“更多信息”→“仍要运行”。
启动后:
- 使用你原来的截图快捷键完成截图。
- 截图进入剪贴板后会自动出现在 ShotShelf。
- 继续截图,不需要先粘贴或手工保存。
- 鼠标移到屏幕边缘露出的小条,标签会完整滑出;单击标签即可展开。
- 拖动展开窗口顶部栏可移动抽屉;拖动收起标签可把它吸附到左、右、上、下任一屏幕边缘。
- 把需要的图片直接拖到目标程序。
- (可选)右键托盘图标勾选“开机启动”,登录 Windows 后 ShotShelf 会自动运行。
关闭窗口只会隐藏到托盘。需要彻底退出时,右键托盘图标并选择“退出”。
| 操作 | 快捷键 |
|---|---|
| 展开 / 收起 ShotShelf | Ctrl + Shift + Space |
| 多选截图 | Ctrl 或 Shift + 鼠标点击 |
| 系统截图 | 保留用户原有截图键,或点击顶部截图按钮 |
如果 Ctrl + Shift + Space 已被其他程序占用,ShotShelf 会记录日志但仍可通过右侧标签和托盘使用。
所有数据只保存在本机:
%LOCALAPPDATA%\ShotShelf\
├─ Cache\
├─ logs\
└─ metadata.json
- 不上传图片
- 不需要账号
- 不读取 API Key 或凭据
- 不修改系统截图键;仅当用户在托盘菜单勾选“开机启动”时,写入当前用户(HKCU)Run 启动项,指向 ShotShelf 自身 EXE,取消勾选即删除该项
- 未固定截图默认保留 24 小时
- 未固定截图最多保留 50 张
- 固定截图不会自动删除
- 日志单文件达到约 1 MB 后自动滚动
ShotShelf 监听的是“剪贴板图片”,Windows 没有可靠字段能区分截图和普通复制图片。因此,从网页或图片软件复制的图片也可能进入中转架。临时不想收集时,可以在托盘菜单中暂停监听。
图片拖放以 FileDrop 真实文件路径为主,并附带首张位图格式提高兼容性。少数只接受专有粘贴协议的程序可能仍需单击卡片后使用 Ctrl + V。
发布后的单文件可以直接运行:
ShotShelf.exe --self-test自检结果同时写入:
%TEMP%\ShotShelf-self-test-latest.txt
覆盖项目:
- PNG 写入与读回
- metadata 保存与加载
- 损坏 metadata 容错恢复
- 固定项目清理保护
- 过期与超量清理
- FileDrop 真实路径
- 剪贴板自抑制与短时去重
- 托盘图标生成
- 开机启动状态逻辑(引号/路径规范化、指向比较,使用内存隔离存储)
- 开机启动注册表读写(隔离子键冒烟,不触碰真实启动项)
正常启动冒烟测试:
ShotShelf.exe --smoke程序完整启动后会在约 3 秒内正常释放资源并退出。
开发环境:
- Windows 10/11 x64
- .NET SDK 8
- PowerShell 7
在项目根目录执行:
pwsh -File .\build.ps1构建脚本会依次:
- Release 编译
- 生成并嵌入应用图标
- 运行 12 项隔离自检
- 发布 self-contained 单文件(重命名为
ShotShelf-windows-x64.exe并生成同名.sha256校验文件) - 发布 framework-dependent 备用单文件
输出:
dist\win-x64\ShotShelf-windows-x64.exe
dist\win-x64\ShotShelf-windows-x64.exe.sha256
dist\win-x64\fd\ShotShelf.exe
.sha256 为纯 64 位大写十六进制(无空格、无换行),与 GitHub Release 资产一起发布,供内置自动更新器校验下载完整性。
fd 版本体积较小,但要求电脑已安装 .NET 8 Desktop Runtime。
- 开机启动写入的是当前用户(HKCU)启动项,仅对当前 Windows 用户生效;值记录的是勾选时的 EXE 绝对路径,若之后手动移动/重命名 EXE,需重新勾选一次“开机启动”。
- 第一版没有独立设置页,保留时长与数量固定为 24 小时 / 50 张。
- 当前不会跨重启保存用户拖动的位置;重新启动后会从鼠标所在显示器的右侧中部出现。
- 高安全级别运行的目标程序可能拒绝来自普通权限进程的拖放,这是 Windows 权限隔离行为。

