ProgramDock 是一个面向 Windows 10/11 的本地程序启动器。它把用户常用的程序快捷方式集中到一个高密度、可搜索的启动面板中,并提供收藏、最近使用、系统/辅助分类和托盘驻留能力。
- 扫描所有可用固定磁盘,也支持自定义扫描目录。
- 默认索引
.exe、.com、.bat、.cmd、.lnk、.msi、.msix和.appx。 - 读取 Windows 卸载注册表中的已安装程序。
- 以用户桌面和
文档\快捷方式中的快捷方式作为“直接使用”证据。 - 解析快捷方式的目标路径、参数和工作目录,合并相同启动签名的重复项。
- 将系统组件、驱动、运行时、安装器、命令行工具和构建辅助程序归入“系统/辅助”。
- 支持程序搜索、收藏、最近使用、隐藏、右键手动分类和启动。
- 高密度 8 列分页网格;搜索采用防抖和后台查询。
- 支持无边框窗口拖拽、双击最大化/还原、托盘驻留和全局快捷键。
- 扫描在后台执行,不需要管理员权限;权限不足和循环目录会安全跳过。
- 本地 JSON 缓存支持下次启动快速恢复目录。
ProgramDock 默认显示“直接使用”分类。为了避免把磁盘角落里的大量辅助文件当成用户程序,直接使用列表只显示具有明确用户证据的项目:
- 位于
C:\Users\<用户名>\Documents\快捷方式或用户桌面中的快捷方式; - 快捷方式解析出的目标程序;
- 已收藏或最近使用过的程序;
- 用户通过右键菜单手动归类为“直接使用”的程序。
没有上述证据的项目会进入“系统/辅助”或“全部”视图。快捷方式的目标相同但启动参数不同,仍会保留为独立项目。
- Windows 10 或 Windows 11,x64 架构;
- 自包含版本不需要预装 .NET Runtime;
- 框架依赖版本需要 .NET 8 Desktop Runtime。
Release 页面提供以下文件:
ProgramDock-1.0.0-win-x64-selfcontained.zip:推荐下载,包含 .NET Runtime;ProgramDock-1.0.0-win-x64-framework-dependent.zip:体积更小,需要 .NET 8 Desktop Runtime;SHA256SUMS.txt:用于校验下载文件完整性。
解压自包含版本后,直接运行:
ProgramDock.exe
首次启动默认读取已有本地缓存;点击“重新扫描”可以更新程序目录。启动时不想立即扫描固定磁盘时,可以使用:
.\ProgramDock.exe --no-scan需要 Windows 10/11 和 .NET 8 SDK:
cd C:\path\to\ProgramDock
dotnet restore .\ProgramDock.sln
dotnet build .\ProgramDock.sln -c Release -p:Platform=x64发布自包含版本:
dotnet publish .\src\ProgramDock\ProgramDock.csproj `
-c Release -r win-x64 --self-contained true `
-p:Platform=x64 -p:PublishTrimmed=false `
-o .\artifacts\ProgramDock-win-x64-selfcontained发布框架依赖版本:
dotnet publish .\src\ProgramDock\ProgramDock.csproj `
-c Release -r win-x64 --self-contained false `
-p:Platform=x64 -p:PublishTrimmed=false `
-o .\artifacts\ProgramDock-win-x64-framework-dependent也可以使用项目脚本:
.\package-release.ps1 -Version 1.0.0
.\verify-release.ps1 -Version 1.0.0package-release.ps1 会生成两个 x64 压缩包、Release Notes 和 SHA256SUMS.txt;verify-release.ps1 会在发布前重新校验所有资产。
| 操作 | 快捷键/方式 |
|---|---|
| 聚焦搜索 | Ctrl+F |
| 启动选中程序 | Enter 或双击图标 |
| 关闭/隐藏窗口 | Esc |
| 重新扫描 | F5 |
| 移动窗口 | 拖动 Logo、标题栏或窗口空白区域 |
| 最大化/还原 | 双击标题栏 |
| 全局呼出 | 默认 Ctrl+Alt+Space,可在设置中修改 |
ProgramDock 只在用户主动点击时启动程序。扫描结果、设置、收藏和异常日志保存在本机:
%APPDATA%\ProgramDock\settings.json
%APPDATA%\ProgramDock\catalog.json
%APPDATA%\ProgramDock\crash.log
程序不会主动请求管理员权限,也不会上传目录清单、收藏或快捷方式信息。首次从旧版本升级时,旧版本的用户设置和目录缓存会自动迁移到新的 ProgramDock 数据目录。
ProgramDock/
├─ ProgramDock.sln
├─ build.ps1
├─ Create-Shortcut.ps1
├─ CHANGELOG.md
├─ LICENSE
├─ SECURITY.md
├─ CONTRIBUTING.md
├─ RELEASE_NOTES.md
├─ .github/workflows/release.yml
└─ src/ProgramDock/
├─ ProgramDock.csproj
├─ MainWindow.xaml / MainWindow.xaml.cs
├─ SettingsWindow.xaml / SettingsWindow.xaml.cs
├─ Models/
├─ Services/
└─ Assets/ProgramDock.ico
- 首次全盘扫描时间取决于磁盘数量和文件数量;
- 当前使用内存目录和 JSON 缓存,尚未使用 SQLite/FTS5 增量索引;
- 特殊快捷方式、便携工具和开发辅助程序可能需要右键手动修正分类;
.bat、.cmd等脚本在启动前会显示确认提示。
欢迎提交 Issue 和 Pull Request。提交代码前请运行:
dotnet build .\ProgramDock.sln -c Release -p:Platform=x64详细流程见 CONTRIBUTING.md。安全问题请勿公开披露,详情见 SECURITY.md。
ProgramDock 采用 MIT License 发布。