可以将设置与Inno Setup同步并读出返回码

时间:2010-10-19 08:01:46

标签: inno-setup

是否可以启动Inno Setup,等待子进程完成?当前系统的默认行为是安装程序在临时文件夹中启动“真实”设置,并在命令行中进一步运行。我的目标是父进程应该等到子进程读出errorlevel变量中的返回代码。我做了picture for better understanding

我的第二个问题是Inno如何处理setup exit codes。设置完成后,他们在哪里读出?如果在设置或用户点击取消时发生错误,则env变量%errorlevel%始终为0.

提前致谢

2 个答案:

答案 0 :(得分:1)

你要做的是操作系统的功能,而不是真正的InnoSetup。使用以下命令从命令提示符或批处理文件执行所需操作:

start /wait setup.exe
echo %ERRORLEVEL%

答案 1 :(得分:0)

以下代码示例在child.exe步骤中调用post-install

procedure CurStepChanged(CurStep: TSetupStep);
var
  ErrorCode: integer;
begin
  if (CurStep = ssPostInstall) then
  begin
    WizardForm.Hide;
    ShellExec('open', 'child.exe', '', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode);
    WizardForm.Show;
    if (ErrorCode <> 0) then
    begin
      // error handling
    end;
  end;
end;