如何在InitializeSetup之后基于检查以静默方式退出安装

时间:2016-09-28 05:14:54

标签: inno-setup

我正在尝试做与this类似的事情。

  • 在显示欢迎页面后进行版本检查
  • 如果降级并退出,则显示一个消息框(带有mbInformation,MB_OK)

这适用于UI模式 - 安装程序退出。但是,在/ Silent模式下,它会显示消息框,但在单击“确定”按钮后会继续显示。

您能否建议如何在静音模式下实现类似功能(即优雅地退出设置)

1 个答案:

答案 0 :(得分:2)

实现先决条件检查的静默模式没有区别。如果您想停止安装,只需在InitializeSetup event function中测试您的先决条件,然后返回False

静默安装需要考虑的唯一事项是:

function WizardVerySilent: Boolean;
var
  i: Integer;
begin
  Result := False;
  for i := 1 to ParamCount do
    if CompareText(ParamStr(i), '/verysilent') = 0 then
    begin
      Result := True;
      Break;
    end;
end; 

function InitializeSetup(): Boolean;
var
  Message: string;
begin
  Result := True;

  if IsDowngrade then
  begin
    Message := 'Downgrade detected, aborting installation';
    if not WizardVerySilent then
    begin
      SuppressibleMsgBox(Message, mbError, MB_OK, MB_OK);
    end
      else
    begin
      Log(Message);
    end;

    Result := False;
  end;
end;