Sitelet https://github.com/SatoriAx/ShotShelf
Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ShotShelf

ShotShelf 是一个面向 Windows 10/11 的本地截图中转架。

截图或复制图片进入剪贴板后,ShotShelf 会立即把它保存成真实 PNG 文件,并放进可贴边隐藏的缩略图抽屉。之后可以连续截图,再从抽屉把任意一张或多张图片拖到聊天框、浏览器上传区、资源管理器或其他支持文件拖放的程序。

当前版本

0.3.1

v0.3.1 更新:

  • 展开且未选择图片时,点击桌面、其他软件或任何 ShotShelf 窗口外区域会自动收起
  • 已有图片被选中时,点击窗口外仍保持展开,保护多选与拖拽流程
  • 列表内部空白只清空选择,不再触发收起
  • 更新检查遇到临时 TLS / 网络失败时自动重试一次;仍失败会明确提示,不再误报“已是最新”
  • 托盘菜单支持“开机启动”开关,并实时读取当前用户启动项的真实状态

效果预览

ShotShelf 主界面

贴边标签 → 展开截图架

截图架贴边收起后只露出一条窄标签,鼠标滑过完整露出,点击即可展开;截图会以缩略图卡片形式排列,可随时拖出。

功能

  • 监听 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 提示,可选择“更多信息”→“仍要运行”。

启动后:

  1. 使用你原来的截图快捷键完成截图。
  2. 截图进入剪贴板后会自动出现在 ShotShelf。
  3. 继续截图,不需要先粘贴或手工保存。
  4. 鼠标移到屏幕边缘露出的小条,标签会完整滑出;单击标签即可展开。
  5. 拖动展开窗口顶部栏可移动抽屉;拖动收起标签可把它吸附到左、右、上、下任一屏幕边缘。
  6. 把需要的图片直接拖到目标程序。
  7. (可选)右键托盘图标勾选“开机启动”,登录 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

构建脚本会依次:

  1. Release 编译
  2. 生成并嵌入应用图标
  3. 运行 12 项隔离自检
  4. 发布 self-contained 单文件(重命名为 ShotShelf-windows-x64.exe 并生成同名 .sha256 校验文件)
  5. 发布 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 权限隔离行为。

About

Windows 本地截图中转架:自动暂存剪贴板图片、贴边隐藏、多选拖出,无账号无上传。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages