Вместо устаревшей функции 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, останавливает вызовы к другим реализациям.