如何检测用户是否已安装软件,如果有,如何提供删除旧版本的可能性?如何检测旧的安装和报价删除?
我写了一些行来检查。现在是否正确?如果这是正确的,那么我该如何让用户选择是否要继续安装或卸载旧版本?
#define UNINSTKEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\setupname_is1"
var
uninstallPath: string;
function InitializeSetup: Boolean;
begin
if (RegQueryStringValue(HKLM,'{#UNINSTKEY}','UninstallString',uninstallPath)) and
(uninstallPath <> '') and (fileexists(uninstallPath)) then
begin
Result :=
(MsgBox(CustomMessage('NotVerifiedVersionFound'), mbConfirmation,
MB_YESNO or MB_DEFBUTTON2) = IDYES);
end;
{ ... }
end;
需要注意的是,通常没有任何需要与基于Inno Setup的做到这一点。从非Inno设置升级时例外。一旦你使用Inno,那么它神奇地为你处理这一切。 – Deanna 2012-07-31 12:10:25
[InnoSetup:如何自动卸载以前安装的版本?]的可能重复(http://stackoverflow.com/questions/2000296/innosetup-how-to-automatically-uninstall-previous-installed-version) – Deanna 2012-07-31 12:11:30
@Deanna对于我的客户确实一直在用inno setup安装这个软件。但Inno并没有真正“处理”它,是吗?它所做的只是覆盖所有旧文件。我可以生成一个卸载程序。但是我想在我的初始设置中使用卸载功能。 – Exa 2012-07-31 12:34:40