默认软件设置器 (Default App Setter)
一款面向Windows 11的默认打开方式管理工具,基于Qt 6 Widgets + MSVC构建。
用于批量、快捷地查看与修改文件扩展名与 URL 协议的默认程序,弥补系统设置中逐项手动点选的低效体验。
功能
| 模块 |
说明 |
| 文件类型关联 |
扫描本机全部扩展名,展示图标、类型说明与当前默认程序;支持关键词搜索与「图片/视频/音频/文档/代码/压缩包/可执行/其他」类别筛选 |
| 批量指派 |
多选扩展名一次性指派同一程序,逐项显示进度与结果 |
| 协议关联 |
管理http/https/mailto/ftp等协议,即默认浏览器与默认邮件客户端 |
| 备份与还原 |
每次设置前自动快照,可一键回滚到任意历史快照,或将选中项恢复为系统默认 |
| 方案导入导出 |
关联方案导出为 JSON,换机后导入并批量套用,导入前提供差异预览 |
设置策略:混合模式
Windows 10/11 的文件关联受UserChoice键下的Hash校验值保护,微软没有公开写入 API
(IApplicationAssociationRegistration::SetAppAsDefault自 Win10 起已被禁用)。
本工具采用静默优先 + 引导回退的混合策略:
用户发起设置
→ 确保目标 ProgId 存在(必要时在 HKCU\Software\Classes 下自建)
→ 写前自动快照
→ 计算 UserChoice 哈希并写入注册表(静默)
→ 回读校验(QueryCurrentDefault)
├─ 一致 → SHChangeNotify 通知资源管理器,标记「已生效」
└─ 不一致 → 打开系统「打开方式」对话框 / ms-settings 深链
→ 二次回读校验 → 标记「需手动确认」或「失败」
Copy code to clipboard
关键点:写入成功 ≠ 生效。资源管理器会校验哈希并静默重置不合法的UserChoice,
因此回读比对是唯一可靠的成功判据,也是自动降级的触发条件。
权限
所有关联写入均在HKCU作用域内完成,无需管理员权限,清单声明为asInvoker。
环境要求
|