# dkmu **Repository Path**: yeahking/dkmu ## Basic Information - **Project Name**: dkmu - **Description**: 一个基于 C# / WPF 的 Windows 桌面软件:用鼠标中键随时呼出的快捷启动面板,集中管理设备上所有应用的启动方式。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-24 - **Last Updated**: 2026-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # StartMenu —— Windows 应用快捷启动管理器 一个基于 C# / WPF 的 Windows 桌面软件:用鼠标中键随时呼出的快捷启动面板,集中管理设备上所有应用的启动方式。 ## 功能 - **鼠标中键全局呼出 / 关闭**:任意界面按下鼠标中键即可显示或隐藏面板,不干扰其他软件的中键功能 - **快捷方式面板**:把 `.lnk` / `.exe` / 任意文件直接拖进面板即可添加磁贴(图标 + 名称) - **一键导入**:批量导入桌面和开始菜单(用户 + 公共)中的现有快捷方式,自动去重 - **分组多页**:磁贴按分组分页管理——新建 / 重命名 / 删除分组、标签拖动排序、磁贴跨组移动,重启记住当前页 - **磁贴跨组移动**:右键"移动到"选目标组,或直接拖到分组标签上;多选状态下批量移动 - **窗口拖动与最大化**:按住标题栏空白处拖动面板位置,双击标题栏或点 □ 按钮最大化 / 还原(铺满所在屏幕工作区),位置与最大化状态自动记忆 - **点击启动**:单击磁贴启动对应应用,面板自动隐藏到系统托盘 - **磁贴管理**:按住拖动排序、右键打开 / 重命名 / 移动分组 / 删除 - **批量删除**:多选模式逐个点选或**拖拉框选**,一键删除所选 - **布局自定义**:点头部"设置"打开设置弹窗——图标大小五档(微小 16 ~ 大 56)、名称文字显隐、正方形磁贴(长宽向较低值对齐)、横向 / 纵向间距数字调整(0–50),全部即改即存 - **开机自启**:随 Windows 自动启动(静默驻留托盘,不弹面板),托盘菜单可开关 - **系统托盘常驻**:托盘左键切换显隐,右键菜单管理(显示/隐藏、开机自启、退出) - **细节体验**:失焦自动隐藏、Esc 关闭、图标后台异步加载(启动不卡顿)、`.lnk` 自定义图标支持、单实例运行、DPI 感知 ## 使用方法 1. 双击运行 `StartMenu.exe`——首次运行自动开启开机自启并显示面板;之后启动(含开机)静默驻留托盘。 2. **添加磁贴**:把快捷方式 / 程序 / 文件拖进面板;或点头部"导入"批量导入桌面与开始菜单(进当前分组页)。 3. **呼出 / 关闭**:任意界面按鼠标中键,或左键单击托盘图标;Esc 隐藏。 4. **分组分页**:标签条切换分组;"+"新建分组;非默认分组右键重命名 / 删除(磁贴移回默认);按住标签可拖动排序;磁贴右键"移动到"或**直接拖到分组标签上**可跨组转移(多选状态下批量生效)。 5. **窗口位置**:按住标题栏空白处拖动面板;双击标题栏或点 □ 按钮最大化 / 还原;位置和最大化状态下次启动自动恢复。 6. **整理磁贴**:按住拖动排序;右键打开 / 重命名 / 删除。 7. **批量删除 / 移动**:头部勾选"多选"——逐个点选,或在空白处**按住左键拖出选取框**框选;点"删除所选"确认删除,或右键已勾选磁贴用"移动到"批量换组;Esc 或"完成"退出多选。 8. **调整布局**:点头部"设置"打开设置弹窗,即时生效并自动保存—— - 图标大小:微小 / 较小 / 小 / 中 / 大 五档 - 文字:取消勾选变为纯图标面板 - 方框:磁贴变为正方形(边长取宽高中较小值) - 横 / 纵:磁贴间距,输入 0–50 的数字,回车或失焦生效 9. **退出**:托盘图标右键 → 退出。 ## 运行 - 运行时依赖:.NET 6 桌面运行时(Microsoft.WindowsDesktop.App 6.0+) - 可执行文件:`bin\Release\net6.0-windows\StartMenu.exe` ## 构建 一键构建(自动检测系统 dotnet,缺失时下载便携 SDK 6.0.428 到 `.dotnet-sdk\`): ```bat build.bat ``` 或手动用 .NET SDK 6.0(6.0.4xx): ```bat dotnet build StartMenu.csproj -c Release ``` 零 NuGet 第三方依赖,全部使用框架内置程序集。 > 注意:构建前请先退出正在运行的 StartMenu(托盘右键 → 退出),否则 exe 被进程锁定会导致构建失败。 ## 数据存储 | 文件 | 内容 | |---|---| | `%AppData%\StartMenu\shortcuts.json` | 磁贴列表(名称、路径、所属分组、顺序) | | `%AppData%\StartMenu\settings.json` | 布局设置(图标大小、文字显隐、方框、间距)、分组顺序、当前分组、窗口位置与最大化状态、首次运行标记 | 写入均为临时文件 + 原子替换,异常中断不会损坏既有数据;删除这两个文件即恢复出厂状态。 ## 文档 开发过程文档(技术选型、关键实现、排障记录、版本记录)见 [docs/开发过程.md](docs/开发过程.md)。