Skip to content
wangmingkun148Public

About

Windows 临时文件置物架:拖动文件时晃动鼠标或拖到屏幕边缘即可呼出,灵感来自 Dropover。 A temporary file shelf for Windows: shake the mouse or pause at a screen edge while dragging. Inspired by Dropover(https://dropoverapp.com)

Topics

Resources

Stars

14 stars

Watchers

0 watching

Forks

Repository files navigation

DropShelf for Windows

简体中文 | English

DropShelf 是一个 Windows 临时文件置物架。拖着文件晃一晃鼠标,或拖到屏幕边缘停一下,置物架就会出现。先把文件放上去,切换到目标窗口后,再一次拖到资源管理器、聊天软件或浏览器里。

主要优点

  • 只在拖动时出现,不拖慢鼠标,也不会误弹。
  • 支持文件、文件夹、图片、文本、链接,以及浏览器、邮件和聊天软件里的附件。
  • 自带压缩、解压、移动到等快速操作,也可以自定义。
  • 误关的置物架可以恢复。
  • 动画流畅,拖动卡牌、翻页都跟手。
  • 不需要管理员权限,不读取文件内容,不联网。

同类软件已经不少,DropShelf 难免有重复造轮子之嫌,但它尽量改进了同类软件的一些不足。灵感来自 macOS 上的 Dropover。DropShelf 是独立项目,与 Dropover 没有关联。

说明

  • 本项目的代码由生成式 AI 编写。
  • 中文界面经过人工校对,英文由 AI 翻译。
  • 为 Windows 11 开发并优化,Windows 10 及更早版本没有测试过。

下载

到 Releases 下载最新版:

  • DropShelf-Setup-版本号.exe:安装包。
  • DropShelf-版本号-portable.zip:便携版,解压后运行 DropShelf.exe。

DropShelf 没有代码签名,首次运行时 Windows 可能显示“Windows 已保护你的电脑”。这是 SmartScreen 对新发布、下载量还少的程序的常规提示,并不代表检测到病毒。点“更多信息”,再点“仍要运行”即可。浏览器下载时提示“不常下载”也一样,选择“保留”。

使用方法

  1. 安装后运行。关闭主窗口后,程序在任务栏通知区域继续运行。
  2. 拖住文件快速来回晃动鼠标,置物架会出现在光标处;也可以拖到屏幕左、右或上边缘停一下。
  3. 把文件放进置物架。之后拖动缩略图堆叠可一次带走全部文件;点顶部的列表按钮展开列表,可以单独或多选拖出。
  4. 按 Ctrl+Shift+Space 可随时打开空置物架,再按 Ctrl+V 粘贴文件、图片或文本。

功能

呼出置物架

  • 呼出方式可选晃动、屏幕边缘或两种都用。
  • 晃动支持左右、上下和斜向,灵敏度用滑块在稳健到灵敏之间无级调节,设置页会显示当前需要晃动的幅度和掉头次数。
  • 可以添加屏蔽的应用:这些应用在前台、或拖动经过它们的窗口时不会弹出置物架,快捷键也交给应用自己使用,适合游戏或绘图软件。
  • 屏幕边缘支持左、右、上三边,停留时间可选 0.3、0.6 或 1 秒;任务栏所在的边和多显示器相邻的边不会触发。

置物架

  • 收起时显示缩略图堆叠、数量和总大小。同时有文件和文字时只拖出文件。
  • 拖进来的文件从松手处飞进堆叠,展开列表时则飞到自己那一行的行首;一次拖入多个时最多 3 个依次落下。
  • 标题栏的列表按钮可以在缩略图堆叠和列表之间切换(“⋯”菜单里也有),切换时窗口大小平滑过渡,每张牌飞到自己那一行;展开列表后可以多选、拖出所选、双击打开或右键操作。
  • 拖出默认移动文件,可在设置或置物架顶部的“移动/复制”按钮切换,按住 Ctrl 或 Shift 可临时改变;拖到聊天软件、浏览器时自动复制。
  • 拖入时移到底部按钮栏会展开快速操作,直接放上去即可处理。
  • 默认开启“自动关闭空置物架”:拖出的文件离开置物架,空了就关闭;关闭此项后,复制出去的文件仍留在架上。
  • 置物架左上角的钉子控制置顶,默认开启;关闭后置物架和普通窗口一样会被其他窗口遮挡。
  • 聊天软件适配:拖放后马上被删除的临时图片和文件会另存一份;支持 PNG、JPG、GIF、DIB 图片数据和旧版 QQ;拖出或复制到聊天软件的临时附件会多保留 10 分钟。
  • 关闭时仍有文件的置物架会保留在“最近关闭”中(最多 10 个),可从设置的概览页、托盘菜单或置物架“⋯”菜单恢复;也可以把概览页的卡牌拖出来,在松手处打开,拖回牌堆时其余卡牌会让出空位,可以放回任意位置。
  • 可同时打开多个置物架,尺寸分小、中、大三档。
  • 快捷键:Esc 收起或关闭、Delete 移除所选、Ctrl+A 全选、Ctrl+C 复制、Ctrl+V 粘贴、Enter 打开。

快速操作

  • 置物架底部可显示 0、2 或 4 个快速操作,在设置中拖动卡片即可更换或调换位置。
  • 内置操作:压缩/解压(只放入一个 ZIP 或 7z 时解压)、复制路径、移动到、属性、在资源管理器中显示。
  • 自定义操作:
    • 发送到文件夹:一键移动或复制到固定文件夹。
    • 压缩图片:压缩为不超过指定大小(如 200 KB)的 JPG,替换置物架上的原图,原文件不变。
    • 用程序打开:把文件交给指定程序,可用 {files} 指定参数位置。
    • 在设置中把自定义操作拖到窗口底部的红色区域,确认后即可删除。
  • 点击按钮处理置物架上的项目,展开列表后只处理选中项。
  • 压缩出的 ZIP 和解压出的文件夹放进新的置物架;不会覆盖同名文件。

设置与外观

  • 浅色(象牙白背景)、深色或跟随系统主题;强调色可跟随 Windows 或从八种颜色中选择。
  • 界面支持简体中文和英文,默认跟随系统语言。
  • 设置修改后立即生效并自动保存。
  • 在概览页按住设置卡片左右拖动,卡片会跟着鼠标翻开;在设置页的空白处左右拖动可以翻回概览。拖过一半或快速甩动后松手就翻过去,否则退回原样。
  • 设置页是翻过来的那张卡片:其余几张卡片翻牌时收到它底下,露出三条边;鼠标移到边上会多露出一截,显示是哪一页。
  • 在设置页中按 Esc、Alt+← 或鼠标侧键的后退键可回到概览。
  • 首次运行显示使用教程,之后可在“常规”中重新查看。

系统集成

  • 托盘图标:左键打开设置,右键新建置物架、恢复最近关闭的置物架或退出。
  • 可选开机自动启动。
  • 安装时可添加到右键“发送到”菜单;把文件拖到程序图标上,或运行 DropShelf.exe --shelf 文件... 也会打开置物架。

隐私与数据安全

  • 放入文件时只记录路径,不读取文件内容;从置物架移除或清空不影响磁盘上的文件。
  • 临时附件和拖入的图片暂存在系统临时目录,关闭置物架后清理。
  • “最近关闭”只记录文件和文件夹的路径与名称,可在设置中清除。
  • 鼠标位置只用于识别手势,不会保存。

安装与卸载

安装到 %LOCALAPPDATA%\Programs\DropShelf,不需要管理员权限,覆盖安装即可升级。可在“设置 > 应用 > 已安装的应用”或开始菜单中卸载,个人设置和日志默认保留。便携版退出后删除文件夹即可。

数据位置

  • 设置:%LOCALAPPDATA%\DropShelf\settings.json
  • 最近关闭的置物架:%LOCALAPPDATA%\DropShelf\history.json
  • 运行日志:%LOCALAPPDATA%\DropShelf\Logs(保留 14 天)

系统要求

  • Windows 11,64 位
  • 无需另外安装 .NET

从源码构建

需要 .NET 10 SDK。

dotnet build .\DropShelf.sln -c Release
dotnet run --project .\src\DropShelf\DropShelf.csproj

运行测试:

dotnet run --project .\tests\DropShelf.Tests\DropShelf.Tests.csproj

生成便携版和安装包(需要 Inno Setup 6 或 7),输出到 artifacts 文件夹:

.\installer\Build-Installer.ps1

调试时可设置环境变量 DROPSHELF_INSTANCE 运行独立实例,DROPSHELF_SETTINGS_PATH 和 DROPSHELF_LOG_DIRECTORY 指定设置和日志位置。

项目结构

  • src/DropShelf/AppController.cs:应用总控。
  • src/DropShelf/Services/Gestures:晃动识别与屏幕边缘停留。
  • src/DropShelf/Views/ProbeWindow.cs:确认拖动内容的探针窗口。
  • src/DropShelf/Shelves/ShelfManager.cs:置物架的创建、复用与关闭。
  • src/DropShelf/Views:置物架、设置、教程等窗口。主窗口和置物架的代码按功能分在 MainWindow.*.cs、ShelfWindow.*.cs 里,如翻牌、状态栏、拖入、拖出。
  • src/DropShelf/Services:拖入拖出、快速操作、压缩解压、历史记录、剪贴板、主题、托盘、快捷键等。
  • src/DropShelf/Localization:中英文界面文字。
  • src/DropShelf/Themes:颜色、图标与控件样式。
  • src/DropShelf/Interop:Win32、DWM 与 Shell 接口。
  • tests/DropShelf.Tests:自动化测试。

发布新版本

  1. 修改 DropShelf.csproj、app.manifest 和 installer 下两个 .iss 文件中的版本号,合并到 main。
  2. 在 GitHub 的 Releases 页面点“Draft a new release”,新建标签 v版本号(如 v2.1.9,须与版本号一致)并发布。
  3. GitHub Actions 会自动编译安装包和便携版,几分钟后附加到这个 Release 上。

许可证

MIT

About

Windows 临时文件置物架:拖动文件时晃动鼠标或拖到屏幕边缘即可呼出,灵感来自 Dropover。 A temporary file shelf for Windows: shake the mouse or pause at a screen edge while dragging. Inspired by Dropover(https://dropoverapp.com)

Topics

Resources

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages