HTML код:

#define GameName "Sacred"
#define modpack_versionInfo "101"
[Setup]
AppName={#GameName}
AppVerName={#GameName}
DefaultDirName={pf}\{#GameName}
AppPublisher=troyan
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[CustomMessages]
russian.Modpack=Модпак
russian.SupportForum=Тема на koreanrandom.com
russian.ForumLink=http://www.koreanrandom.com
russian.UpdatedLabel=Обновлено:
russian.WOT_version=Версия WOT:
russian.modpack_version=Версия модпака:
russian.installer_version=wotunion installer
russian.CheckingActualModpackVersionLabel=Проверка обновлений модпака...
russian.CannotCheckUpdate=Ошибка при проверке обновлений. Далее - для установки
russian.NoUpdates=Обновлений не найдено. Далее - для установки
russian.ErrorWhileOpeningUpdatePage=Ошибка при переходе на страницу загрузки
russian.AllIsReadyForInstall=Все готово для установки. Нажмите Далее для продолжения
russian.UpdateFound=найдено
russian.httpVersion=http://proreduceri.tk/version.txt
russian.httpMsg=http://proreduceri.tk/msg.txt
russian.WOT_NotFound=Клиент World of Tanks не обнаружен. Установка будет прервана.
russian.for=для
russian.CheckAccess=Установка невозможна. Проверьте наличие прав доступа к файлам и папкам установленного клиента World of Tanks, закройте программы, которые используют папки и/или файли клиента World of Tanks, или запустите инсталлятор модпака с правами администратора.
russian.MustUninstallBefore=Установка невозможна. Воспользуйтесь деинсталлятором модпака для удаления предыдущей установки модпака (Пуск - Программы - wotunion modpack - Удалить wotunion modpack).
russian.NewVersionFound=Доступна новая версия модпака:
russian.GoToLink=Перейти по ссылке в браузере для загрузки ?
russian.CheckAccessUninstall=Деинсталляция невозможна. Проверьте наличие прав доступа к файлам и папкам установленного клиента World of Tanks закройте программы, которые используют папки и/или файлы клиента World of Tanks, или запустите деинсталлятор модпака с правами администратора.
[code]
var
CheckingActualModpackVersionLabel: TLabel;
WelcomePageID: Integer;
ActualVersion: String;
ActualVersionLongint: Longint;
InstallVersionLongint: Longint;
ActualVersionMsg: String;
ReadyToInstall: Boolean;
TerminateInstall: Boolean;
function DownloadFile(const AURL: string; var AResponse: string): Boolean;
var
WinHttpRequest: Variant;
begin
Result := False;
try
WinHttpRequest := CreateOleObject('WinHttp.WinHttpRequest.5.1');
WinHttpRequest.Open('GET', AURL, False);
WinHttpRequest.Send;
AResponse := WinHttpRequest.ResponseText;
Case WinHttpRequest.Status of
'200':
begin
Result := True;
end;
end;
except
ReadyToInstall:=True;
AResponse := GetExceptionMessage;
CheckingActualModpackVersionLabel.Caption:=ExpandConstant('{cm:CannotCheckUpdate}');
Result := False;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectDir then
begin
end;
WizardForm.InnerNotebook.Visible := CurPageID <> WelcomePageID;
end;
function Form_CreatePage(PreviousPageId: Integer): Integer;
var
Page: TWizardPage;
begin
Page := CreateCustomPage(PreviousPageId, '', '');
WelcomePageID := Page.ID;
CheckingActualModpackVersionLabel := TLabel.Create(WizardForm);
with CheckingActualModpackVersionLabel do
begin
Parent := WizardForm.InnerPage;
Visible:=True;
Left := ScaleX(5);
Top := ScaleY(292);
Font.Color:= clBlack;
end;
Result := Page.ID;
end;
Procedure ForumLinkOnClick (Sender: TObject);
var
ErrorCode: Integer;
Begin
ShellExec ('open', ExpandConstant('{cm:ForumLink}'),'','', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
procedure InitializeWizard();
begin
Form_CreatePage(wpWelcome);
with WizardForm.PageDescriptionLabel do
begin
Visible := False;
end;
with WizardForm.PageNameLabel do
begin
Visible := False;
end;
end;
function CheckUpdates():Boolean;
var ErrorCode: Integer;
begin
if ReadyToInstall=False then
begin
CheckingActualModpackVersionLabel.Visible:=True;
CheckingActualModpackVersionLabel.Caption := ExpandConstant('{cm:CheckingActualModpackVersionLabel}');
if ((DownloadFile(ExpandConstant('{cm:httpVersion}'), ActualVersion)=True) and (DownloadFile(ExpandConstant('{cm:httpMsg}'), ActualVersionMsg)=True)) then
begin
if (StrToIntDef(ActualVersion, ActualVersionLongint)) > (StrToIntDef('{#modpack_versionInfo}', InstallVersionLongint)) then
begin
CheckingActualModpackVersionLabel.Caption := CheckingActualModpackVersionLabel.Caption + ExpandConstant('{cm:UpdateFound}');
if MsgBox(ExpandConstant('{cm:NewVersionFound}') + ActualVersionMsg + ExpandConstant('{cm:GoToLink}'), mbConfirmation, MB_YESNO) = IDYES then
begin
If not ShellExec('', ExpandConstant('{cm:ForumLink}'), '', '', SW_SHOW, ewNoWait, ErrorCode) then
begin
CheckingActualModpackVersionLabel.Caption:=ExpandConstant('{cm:ErrorWhileOpeningUpdatePage}');
ReadyToInstall:=True;
Result:=False;
end
else
begin
Result:=False;
TerminateInstall:=True;
WizardForm.Close;
end;
end
else
begin
CheckingActualModpackVersionLabel.Caption:=ExpandConstant('{cm:AllIsReadyForInstall}');
ReadyToInstall:=True;
Result:=False;
end;
end
else
begin
CheckingActualModpackVersionLabel.Caption:=ExpandConstant('{cm:NoUpdates}');
ReadyToInstall:=True;
Result:=False;
end;
end
else
begin
CheckingActualModpackVersionLabel.Caption:=ExpandConstant('{cm:CannotCheckUpdate}');
ReadyToInstall:=True;
Result:=False;
end;
end
else
begin
Result:=True;
end;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
if CurPageID <> WelcomePageID then
begin
Result:=True;
end
else
begin
Result:=CheckUpdates;
end;
end;
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
if ((CurPageID=WelcomePageID) and (TerminateInstall=True)) then Confirm := False;
end;