1.安装忽略某些文件(用于忽略配置文件)
增加属性 onlyifdoesntexist 即可:
Source: "..\RDMSClient\soft\setting.ini"; DestDir: "{app}"; Flags: ignoreversion onlyifdoesntexist
2.检查是否已安装:主要是在注册表检查软件的id,ID与你脚本中AppId保持一致。
procedure InitializeWizard();
var
uicmd: String;
begin
WizardForm.LICENSEACCEPTEDRADIO.Checked:=false;
if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{203925E5-9A30-48C7-A777-26ACE73A6916}}_is1', 'UninstallString', uicmd) then
begin
//已安装,跳过自定义设置界面
end
else
begin
ClientType(); //自定义设置界面 设置基本信息
end;
end;
参考例子,安装前 卸载提醒:
function InitializeSetup():boolean;
var
MykeynotExist:boolean;
ResultCode: Integer;
uicmd: String;
begin
MykeynotExist:= true;
if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{A8615C4D-1063-4353-9C6A-9AD87F88D231}_is1', 'UninstallString', uicmd) then
begin
MsgBox('MooeStudio已经安装,你确定要先卸载,再安装!', mbInformation, MB_OK)
MyKeynotExist:= false;
Exec(RemoveQuotes(uicmd), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
end;
Result:= MykeynotExist
end;
引用例子:https://blog.csdn.net/pailugou/article/details/108575729