Skip to content

Latest commit

 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

DeskBox Logo

DeskBox

一款面向 Windows 桌面的快捷方式整理工具,将分散的程序快捷方式收纳到透明、可拖动的桌面盒子中。

Windows 10/11 .NET 8 WPF 积极维护

项目概览 | 功能特性 | 快速开始 | 使用方式 | 项目架构

项目概览

DeskBox 是一款运行在 Windows 桌面上的快捷方式整理工具,主要用于解决桌面图标数量过多、程序入口分散、常用工具难以快速查找等问题。用户可以把 .lnk 快捷方式拖入不同的透明盒子,按照工作、开发、娱乐等场景进行分组,并直接在桌面上完成整理和启动。

每个盒子都可以在桌面上自由移动、折叠和展开。展开后会进入一个更适合浏览的快捷方式工作区,支持分页查看和快捷启动,不需要额外打开传统的启动器窗口。

本仓库名称为 StorageBox,应用展示品牌为 DeskBox,Logo 和界面截图均已整理在仓库的 docs/images 目录中。

界面展示

DeskBox 桌面总览 DeskBox 盒子展开界面
在桌面上整理多个快捷方式分组 展开后的 3 x 3 快捷方式工作区与分页浏览

功能特性

  • 使用透明桌面盒子对 Windows 快捷方式进行分组管理。
  • 支持将 .lnk 文件直接拖拽到盒子中,快速添加快捷方式。
  • 支持展开盒子,进入集中查看的 3 x 3 快捷方式工作区。
  • 支持通过鼠标滚轮、水平拖动和页码指示器浏览多页内容。
  • 双击快捷方式即可通过 Windows Shell 启动目标程序。
  • 按住 Alt 键拖动折叠状态的盒子,可以重新调整盒子在桌面上的位置。
  • 右键菜单支持新建、重命名、删除、打开和移除等常用操作。
  • 采用现代化白色操作弹窗,并支持点击外部区域关闭临时菜单。
  • 支持 Windows 通知区域托盘图标,可快速显示或隐藏盒子、新建盒子、切换开机自启、打开配置目录和退出程序。
  • 将盒子布局和快捷方式配置持久化保存到 %AppData%\IconBox\config.json
  • 支持多显示器环境,并能够在显示器边界变化后自动修正盒子位置。
  • 盒子运行在 Windows 桌面层,不会覆盖用户正在使用的普通应用程序窗口。

项目亮点

DeskBox 的定位不是一个普通的启动器窗口,而是一个持续存在于桌面上的轻量级工具。项目重点处理了桌面工具在日常使用中的几个关键体验:

  • 在不抢占当前应用焦点的情况下,保持桌面盒子可用。
  • 结合 WPF 界面、WinForms 托盘能力和 Windows 原生窗口样式,处理桌面层级与交互关系。
  • 在配置文件发生变化、快捷方式丢失或路径无效时,尽量保证程序能够正常加载和运行。
  • 同时支持折叠态桌面小组件和展开态快捷方式浏览界面,避免重复维护两套数据。
  • 通过全局鼠标监听处理桌面外点击,使临时操作弹窗能够在合适的时机关闭。

快速开始

运行环境

  • Windows 10 或 Windows 11。
  • .NET 8 SDK,并安装 Windows Desktop 相关组件。

使用 PowerShell 运行

cd D:\2_Projects\Codex\StorageBox
dotnet build .\IconBox.App\IconBox.App.csproj
dotnet run --project .\IconBox.App\IconBox.App.csproj

程序以 Windows GUI 进程运行。启动后,盒子会显示在桌面上,同时在 Windows 通知区域显示 DeskBox 托盘图标。

使用方式

操作 功能
左键点击折叠状态的盒子 打开或关闭盒子展开工作区
按住 Alt 并拖动折叠状态的盒子 移动盒子在桌面上的位置
.lnk 文件拖到盒子上 向盒子中添加快捷方式
双击快捷方式 启动对应的目标程序
右键点击盒子 打开重命名、删除、新建等盒子操作
右键点击展开后的工作区 打开当前盒子的相关操作
右键点击展开界面中的快捷方式 打开、移除快捷方式或打开目标所在位置
右键点击托盘图标 显示或隐藏盒子、新建盒子、切换开机自启、打开配置目录或退出程序

项目架构

DeskBox 采用基于 WPF 的轻量级服务化结构,将桌面交互逻辑放在对应的视图和控件中,同时通过独立服务处理配置、快捷方式解析、程序启动和开机自启等职责。

模块 主要职责
MainWindow 桌面画布、展开工作区、操作弹窗、托盘操作和程序生命周期管理
IconBoxControl 折叠盒子绘制、拖放处理、盒子手势和盒子操作弹窗
BoxModel / ShortcutItem 盒子状态与快捷方式状态的数据模型
ConfigStore 将配置以 JSON 形式持久化到用户 AppData 目录
ShortcutResolver 解析 .lnk 文件中的快捷方式信息和图标
LaunchService 通过 Windows Shell 启动快捷方式并打开目标位置
AutoStartService 管理程序的 Windows 开机启动注册信息
DesktopWindowHost 设置 Windows 原生窗口样式并协调桌面层级
GlobalMouseHook 监听外部鼠标点击,使临时操作弹窗能够可靠关闭
ModernTrayMenuRenderer 绘制现代化白色的 Windows 通知区域菜单

项目结构

IconBox.App/
|-- Controls/       # 折叠状态的桌面盒子控件
|-- Interop/        # Windows 桌面宿主、鼠标监听和托盘菜单绘制
|-- Models/         # 应用配置、盒子和快捷方式数据模型
|-- Services/       # 配置、快捷方式、程序启动和开机自启服务
|-- Views/          # 辅助 WPF 窗口
|-- MainWindow.xaml # 桌面工作区和展开后的快捷方式界面
`-- App.xaml        # 全局操作弹窗样式

配置文件

DeskBox 会将用户配置保存到以下位置:

%AppData%\IconBox\config.json

配置文件包含盒子名称、盒子位置、所属显示器、当前页码、快捷方式路径以及开机自启设置。当某个快捷方式文件不存在或配置无效时,程序会跳过异常条目,尽量继续加载其他正常内容。

开发与构建

只构建程序但不启动:

dotnet build .\IconBox.App\IconBox.App.csproj

直接运行项目:

dotnet run --project .\IconBox.App\IconBox.App.csproj

本地验证生成的构建输出目录已通过 .gitignore 排除。仓库只保留最新版本所需的源代码、文档图片和项目配置,避免将本地编译产物和旧版本验证目录提交到 GitHub。

后续规划

  • 支持自定义主题和盒子强调色。
  • 支持搜索所有盒子中的快捷方式。
  • 支持导入和导出盒子布局。
  • 制作安装包,并发布经过签名的 Windows 版本。

开源协议

当前仓库暂未选择具体的开源许可证。

About

一款面向 Windows 桌面的快捷方式整理工具,将 .lnk 快捷方式收纳到可拖动的透明盒子中,支持分页浏览、拖拽添加、系统托盘控制和多显示器布局。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages