Код:
//Процедура, Оформление окон
procedure LoadVCLStyle(VClStyleFile: String); external 'LoadVCLStyleW@files:VclStylesInno.dll stdcall';
procedure UnLoadVCLStyles; external 'UnLoadVCLStyles@files:VclStylesInno.dll stdcall';
//Процедура, Splash
procedure ShowSplashScreen(p1:HWND;p2:AnsiString;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer);
external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
//Объеденение две функции в одну, первая, Оформление окон
Function InitializeSetup1(): Boolean;
begin
ExtractTemporaryFile('Amakrits.vsf');
LoadVCLStyle(ExpandConstant('{tmp}\Amakrits.vsf'));
Result := True;
end;
procedure DeinitializeSetup();
begin
UnLoadVCLStyles;
end;
//Объеденение две функции в одну, вторая, Обновление
Function InitializeSetup2(): Boolean;
var ResultStr: String;
begin
RegQueryStringValue(HKCU, 'Software\WoTBlitz', 'Version', ResultStr);
if ResultStr='{#AppVer}' then
begin
Result := MsgBox('Поиск клиента игры...' #13#13 'Клиент игры найден. Продолжить установку?', mbConfirmation, MB_YESNO) = idYes;
if Result = False then
MsgBox('Поиск клиента игры...' #13#13 'Обновление клиента прервано.', mbInformation, MB_OK);
end
else MsgBox('Поиск клиента игры...' #13 'Клиент игры не найден!' #13#13 'Обновление не может быть установлено!', mbConfirmation, MB_OK)
end;
//Читаем значение параметра Version из реестра и присваиваем его переменной ResultStr
//Если значение параметра Version равно 1.0, обновление устанавливается, если не равно или не существует – установка прекращается
//Запуск функций, сначала первую за ней вторую (более правильное объеденение двух функций в одну)
Function InitializeSetup(): Boolean;
begin
InitializeSetup1();
InitializeSetup2();
Result := True;
end;
//Функция, Splash
procedure InitializeWizard();
begin
ExtractTemporaryFile('Splash.png');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}\Splash.png'),1000,3000,1000,0,255,True,$FFFFFF,10);
end;