Inno Setup安装时卸载旧版本

记录一下Inno Setup打包exe卸载旧版本

[Code]

function GetUninstallString(): String;

var

sUnInstPath: String;

sUnInstallString: String;

begin

sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\{填写自己的软件AppId}_is1');

sUnInstallString := '';

if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then

RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString);

Result := sUnInstallString;

end;

function IsUpgrade(): Boolean;

begin

Result := (GetUninstallString() <> '');

end;

function UnInstallOldVersion(): Integer;

var

sUnInstallString: String;

iResultCode: Integer;

begin

// Return Values:

// 1 - uninstall string is empty

// 2 - error executing the UnInstallString

// 3 - successfully executed the UnInstallString

// default return value

Result := 0;

// get the uninstall string of the old app

sUnInstallString := GetUninstallString();

if sUnInstallString <> '' then begin

sUnInstallString := RemoveQuotes(sUnInstallString);

if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then

Result := 3

else

Result := 2;

end else

Result := 1;

end;

procedure CurStepChanged(CurStep: TSetupStep);

begin

if (CurStep=ssInstall) then

begin

if (IsUpgrade()) then

begin

UnInstallOldVersion();

end;

end;

end;

功能描述

  • 比较版本号,如果版本号高于已安装的则卸载旧版本;

注意

  • 只有appId相同才会对比,appId不同继续安装;
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值