使用innosetup并希望显示错误/ msgBox,如果其中一个[RUN]进程没有返回进程代码0.我正在使用它进行授权过程,如果授权不成功,我想通知用户.
我有以下内容:
Filename: "{pf32}\Common Files\Authorization.exe"; Parameters: " "{code:GetAuthorizationFilePath}" /s"; WorkingDir: "{tmp}"; Flags: skipifdoesntexist hidewizard; StatusMsg: "Authorizing License";
归还给我:
Process exit code:0
有没有办法做到这一点?
感谢致敬,
Kev84
解决方法
我认为没有办法从[Run]部分完成此操作.你能做的是:
>使用Pascal脚本执行此任务
>或显示来自您执行的应用程序Authorization.exe的模态错误消息,并仅在用户确认错误消息后终止它(然后设置将继续,例如执行[Run]部分中的其他文件)
这是Pascal脚本的代码示例;你也可以查看这段代码的commented version
:
[Code] function NextButtonClick(CurPageID: Integer): Boolean; var ResultCode: Integer; begin Result := True; if CurPageID = wpWelcome then begin Result := False; if Exec(ExpandConstant('{pf32}\Common Files\Authorization.exe'),'',SW_SHOW,ewWaitUntilTerminated,ResultCode) then begin if ResultCode = 0 then Result := True else MsgBox('The authorization Failed!',mbCriticalError,MB_OK); end; end; end;