2010-10-19 106 views
0

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

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

在此先感谢

回答

0

post-install步骤下面的代码示例调用child.exe

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; 
+0

对不起,但这不是我的意思。这不是我自己的孩子过程,而是创新过程。 [见过程资源管理器的这张图片](http://img525.imageshack.us/img525/516/inno2.gif) – danny 2010-10-19 10:31:17

1

你什么试图做的是OS的功能,而不是真正的InnoSetup。使用以下命令来从命令提示符或批处理文件中执行所需操作:

start /wait setup.exe 
echo %ERRORLEVEL%