是否可以启动Inno Setup,等待子进程完成?当前系统的默认行为是安装程序在临时文件夹中启动“真实”设置,并在命令行中进一步运行。我的目标是父进程应该等到子进程读出errorlevel变量中的返回代码。我做了picture for better understanding
我的第二个问题是Inno如何处理setup exit codes。设置完成后,他们在哪里读出?如果在设置或用户点击取消时发生错误,则env变量%errorlevel%
始终为0.
提前致谢
答案 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;