Windows下QtIFW:如何让用户卸载时调用MaintenanceTool卸载程序
关联Windows右键卸载到Qt Installer Framework的MaintenanceTool
要让Windows右键卸载你的应用时自动调用QtIFW的MaintenanceTool.exe --start-uninstaller,核心是修改系统注册表中对应应用的卸载配置项,具体操作如下:
手动修改注册表(已安装应用)
- 打开注册表编辑器
- 按下
Win+R,输入regedit回车启动注册表编辑器。
- 按下
- 定位应用的卸载项
- 根据应用位数选择对应路径:
- 32位应用:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall - 64位应用:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
- 32位应用:
- 在上述路径下找到匹配你应用名称的子项(可通过查看
DisplayName键值确认)。
- 根据应用位数选择对应路径:
- 修改卸载命令
- 在目标子项中,修改或添加以下键值:
- UninstallString:设置为完整的卸载命令,示例:
"C:\Program Files\MyApp\MaintenanceTool.exe" --start-uninstaller - QuietUninstallString(可选):用于静默卸载场景,示例:
"C:\Program Files\MyApp\MaintenanceTool.exe" --start-uninstaller --silent
- UninstallString:设置为完整的卸载命令,示例:
- 注意:路径包含空格时必须用双引号包裹。
- 在目标子项中,修改或添加以下键值:
- 清理默认关联(可选)
- 如果子项中存在
NoRemove键,直接删除它;若有ModifyPath键,可将其值改为MaintenanceTool.exe的路径(用于「修改」应用操作)。
- 如果子项中存在
打包时自动配置(QtIFW安装包)
如果希望安装应用时自动完成上述注册表配置,可修改QtIFW的config.xml文件,添加注册表操作节点:
<Installer> <!-- 其他配置项 --> <Registry> <Type>HKLM</Type> <Key>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName]</Key> <Value> <Name>UninstallString</Name> <Data>"[InstallDir]/MaintenanceTool.exe" --start-uninstaller</Data> <Type>string</Type> </Value> <Value> <Name>QuietUninstallString</Name> <Data>"[InstallDir]/MaintenanceTool.exe" --start-uninstaller --silent</Data> <Type>string</Type> </Value> </Registry> </Installer>
- 替换
[ProductName]为你的应用名称(需与安装包配置一致)。 [InstallDir]是QtIFW内置变量,会自动替换为用户实际选择的安装路径。
内容的提问来源于stack exchange,提问作者Paul Masri-Stone
相关产品推荐
相关产品推荐

