Как я могу предотвратить отображение экрана spla sh, когда он мне нужен в Inno Setup? - PullRequest
2 голосов
/ 06 апреля 2020

Как я могу предотвратить отображение экрана spla sh, когда он мне нужен? Должен ли я добавить ISSI-код для этого?

Вот мой код:

#define ISSI_Splash "C:\InnoSetupProject\Images\client.bmp"                 
#define ISSI_Splash_T 3
#define ISSI_Splash_X 500
#define ISSI_Splash_Y 220 

[Code]
function ISSI_InitializeSetup : Boolean;
begin       
  Result := True;
  if not RegValueExists(HKLM, 'SOFTWARE\MyApp\Client', 'LocaleID') then
    if MsgBox('Client does not exist', mbCriticalError, MB_OK) = IDOK then
      begin
        Result := False;
        { How can I prevent showing the splash screen here? }
        Exit;
      end  
end;

#define ISSI_InitializeSetup
#define ISSI_IncludePath "C:\ISSI" 
#include ISSI_IncludePath+"\_issi.isi"

1 Ответ

2 голосов
/ 06 апреля 2020

Вместо устаревшей функции ISSI_InitializeSetup используйте атрибуты события Inno Setup 6 :

[Code]
<event('InitializeSetup')>
function MyInitializeSetup: Boolean;
begin       
  Result := True;
  if not RegValueExists(HKLM, 'SOFTWARE\MyApp\Client', 'LocaleID') then
    if MsgBox('Client does not exist', mbCriticalError, MB_OK) = IDOK then
      begin
        Result := False; 
      end;
end;

и удалите это:

#define ISSI_InitializeSetup

MyInitializeSetup будет вызываться до ISSI InitializeSetup. И если он возвращает False, ISSI никогда не будет вызываться, поэтому экран spla sh не будет отображаться.

Проверьте документацию для Атрибуты события :

  • Реализации будут вызываться в порядке их определения, за исключением того, что любая основная реализация (= реализация без атрибута события) будет вызываться последней .

  • Если функция события имеет возвращаемое значение, выполняется ленивая оценка: InitializeSetup, BackButtonClick, NextButtonClick, InitializeUninstall:

    • Все реализации должны вернуть True для функции события, которая будет рассматриваться как возвращающая True, и реализация, возвращающая False, останавливает вызовы к другим реализациям.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...