Inno Setup условный перезапуск на основе результата исполняемого вызова
Мой Inno Setup скрипт используется для установки драйвера. Это работает мойInstallDriver.exe
после того, как этот файл был скопирован во время шагаssInstall
.
Мне нужно попросить пользователя перезапустить в некоторых случаях в соответствии со значением, возвращаемымInstallDriver.exe
.
Это значит, что я не могу поставитьInstallDriver.exe
в разделе[Run]
потому что нет способа контролировать его возвращаемое значение.
Так что я положил его в функцииCurStepChanged()
следующее:
procedure CurStepChanged(CurStep: TSetupStep);
var
TmpFileName, ExecStdout, msg: string;
ResultCode: Integer;
begin
if (CurStep=ssPostInstall) then
begin
Log('CurStepChanged(ssPostInstall)');
TmpFileName := ExpandConstant('{app}') + '\InstallDriver.exe';
if Exec(TmpFileName, 'I', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then .......
Однако я не могу найти способ перезапустить мой скрипт на этом этапе.
Я думал об использовании функцииNeedRestart()
контролировать вывод установщика драйвера, но он вызывается ранее в процессе. Имеет ли смысл вызывать установщик драйвера изнутриNeedRestart()
?