0

我的应用程序将安装另一个应用程序。这很容易通过在我的程序中使用 ShellAPI 运行该应用程序的 setup.exe 来完成。

但是,如果这个外部应用程序已经存在,我想先卸载它。我可以自己打开控制面板,找到应用程序,然后有一些用于“卸载”或“修复”的菜单选项。单击任一将打开此应用程序的 InstallAware 向导。

我可以从我的应用程序中启动此向导吗?用户仍然需要单击并确认所有内容,但我正在尝试合并卸载和重新安装此外部应用程序的全新/较新版本所需的步骤。我找不到要运行的uninstall.exe 之类的东西。从控制面板链接执行什么来卸载应用程序?

4

1 回答 1

2

您可以在注册表项下找到已安装应用程序的列表

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

每个应用程序都有自己的子密钥,因此您必须找到正确的子密钥。然后将卸载信息存储在UninstallString价值之下。

也有可能应用程序安装在HKEY_CURRENT_USER根密钥下。

但是,我不建议您自己执行卸载,除非您有特定的理由这样做。任何体面的安装程序都应该能够执行现有安装的升级,因此调用setup.exe就足够了。

于 2015-02-26T14:26:46.823 回答