Часть моего установщика проверяет наличие последней версии на нашем сервере и при необходимости загружает ее автоматически сразу после страницы приветствия. Фактическая проверка и загрузка находятся в функции CheckForNewInstaller
, которая возвращает True
, если новый установщик был загружен и выполнен, и False
, если необходимо продолжить. Если новый установщик был загружен (True
), то мастер должен завершить работу.
Используя следующий код, я сделал это, используя WizardForm.Close
. Тем не менее, он по-прежнему предлагает пользователю, если он уверен, что хочет отменить. В обычных сценариях я по-прежнему хочу, чтобы пользователь получал это приглашение при попытке закрыть программу установки. Однако мне нужно подавить это диалоговое окно, когда мне нужно принудительно закрыть мастер. Я также не могу завершить процесс, потому что процесс очистки не произойдет должным образом.
function NextButtonClick(CurPageID: Integer): Boolean;
var
ResultCode: Integer;
X: Integer;
begin
Log('NextButtonClick(' + IntToStr(CurPageID) + ') called');
Result := True;
case CurPageID of
wpWelcome: begin
if CheckForNewInstaller then begin
//Need to close this installer as new one is starting
WizardForm.Close;
end;
end;
....
end;
end;
Как я могу полностью закрыть этот установщик без дальнейшего взаимодействия с пользователем?