Если я вас правильно понимаю, вы выполняете проверку, и если она не проходит, вы хотите пропустить wpWelcome, wpPreparing и wpInstall (и, возможно, другие пользовательские страницы).
Я предполагаю, что вы также хотите пропустить действия, выполняемые при отображении этих страниц, в частности, вы не хотите выполнять шаг установки.
Если это так, вы должны отменить установку, а не продолжать ее без выполнения фактических шагов установки. Вы можете сделать это в InitializeSetup
, например:
Procedure InitializeSetup();
VAR
Check: Integer;
BEGIN
// perform you check here, set the variable according to it's result
IF (Check <> 0) THEN
// abort installation
Return False;
ELSE
Return True;
END;
Редактировать
В ответ на ваш комментарий: самым простым решением было бы показать окно сообщения с результатом вашей проверки вместо полной страницы мастера. Если этого недостаточно для ваших целей, я бы предложил следующий подход:
Выполните проверку в InitializeSetup
и сохраните результат в глобальной переменной.
Создайте новую страницу мастера (давайте назовем ее CheckResult ) для отображения результатов вашей проверки, она должна отображаться сразу после wpWelcome
.
На этой странице OnNextButtonClick
просто позвоните CancelButtonClick
, таким образом, установка всегда прерывается при отображении этой страницы
Настало время изменить ShouldSkipPage
;-) Если переменная глобальной проверки показывает, что все в порядке, пропустите страницу CheckResult , чтобы установка не прерывалась автоматически
Это должно работать, но если вы как-то можете, следуйте принципу KISS и используйте подход с окном сообщений.