P.S.Enot 416 #514744 Posted January 22 Здравствуйте парни. Подскажите пожалуйста код, который определяет о не соответствии версии игры и модпака, и запрещает дальнейшую установку или процедуру установщика ??? Вот типа как на скриншоте Quote Share this post Link to post Short link Share on other sites
Xotabych 336 #514745 Posted January 22 @P.S.Enot ты уже не первый год тут трешься на форуме, тебе разжевать и положить в рот нужно. Поиск рулит в теме- тут все есть. Quote Share this post Link to post Short link Share on other sites
P.S.Enot 416 #514747 Posted January 22 (edited) 5 минут назад, Xotabych сказал: @P.S.Enot ты уже не первый год тут трешься на форуме, тебе разжевать и положить в рот нужно. Поиск рулит в теме- тут все есть. не че мне ненужно разжёвывать. просто попросил скинуть код. вот и все . не думаю что сложно кто знает тыкнуть или на страницу нужную или просто про копировать. Кому нужно тема ТУТ или вот архив с документом проверка версии клиента игры.rar Edited January 22 by P.S.Enot Quote Share this post Link to post Short link Share on other sites
Nowik1971 2 #514800 Posted January 23 (edited) 22.01.2022 в 15:33, P.S.Enot сказал: Здравствуйте парни. Подскажите пожалуйста код, который определяет о не соответствии версии игры и модпака, и запрещает дальнейшую установку или процедуру установщика ??? Вот типа как на скриншоте Вот код с этой темы раз не можешь или ленишься найти!!! #define GameName "Sacred" #define modpack_versionInfo "0.9.15" [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://сайт.ru/updater 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://сайт.ru/updater/version.txt russian.httpMsg=http://сайт.ru/updater/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; или вот!!! [Code] function FileVersion(const FilePath: String): String; var oFS: Variant; begin oFS:= CreateOleObject('Scripting.FileSystemObject'); try Result:= oFS.GetFileVersion(FilePath); except end; end; //"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""// Function NextButtonClick(CurPageID: Integer): Boolean; begin Result := True; case CurPageID of wpSelectDir: begin if FileExists(ExpandConstant('{app}')+'win32\WorldOfTanks.exe') then begin if FileVersion(ExpandConstant('{app}')+'win32\WorldOfTanks.exe') < '{#patch}' then begin MsgBoxEx(WizardForm.Handle, 'Моды не будут работать на данной версии патча игры! Моды предназначены для версии патча {#patch}', 'Моды не подходят к данному патчу World of Tanks', MB_OK or MB_ICONWARNING, 0, 0); Result:= false; end; end; end; end; end; Коды конечно немного устарели, но как образец и для размышления пойдут!!! Подправишь... Edited January 23 by Nowik1971 Дополнение 1 Quote Share this post Link to post Short link Share on other sites
P.S.Enot 416 #514801 Posted January 23 37 минут назад, Nowik1971 сказал: Вот код с этой темы раз не можешь или ленишься найти!!! #define GameName "Sacred" #define modpack_versionInfo "0.9.15" [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://сайт.ru/updater 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://сайт.ru/updater/version.txt russian.httpMsg=http://сайт.ru/updater/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; или вот!!! [Code] function FileVersion(const FilePath: String): String; var oFS: Variant; begin oFS:= CreateOleObject('Scripting.FileSystemObject'); try Result:= oFS.GetFileVersion(FilePath); except end; end; //"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""// Function NextButtonClick(CurPageID: Integer): Boolean; begin Result := True; case CurPageID of wpSelectDir: begin if FileExists(ExpandConstant('{app}')+'win32\WorldOfTanks.exe') then begin if FileVersion(ExpandConstant('{app}')+'win32\WorldOfTanks.exe') < '{#patch}' then begin MsgBoxEx(WizardForm.Handle, 'Моды не будут работать на данной версии патча игры! Моды предназначены для версии патча {#patch}', 'Моды не подходят к данному патчу World of Tanks', MB_OK or MB_ICONWARNING, 0, 0); Result:= false; end; end; end; end; end; Коды конечно немного устарели, но как образец и для размышления пойдут!!! Подправишь... Спасибо . вчера нашел уже, выше тоже вариант рабочий выложи. но за помощь большое спасибо Quote Share this post Link to post Short link Share on other sites
P.S.Enot 416 #515538 Posted February 2 (edited) Доброго времени суток всем. Собрал бекап, удаление и тд. Но по чему то на вот такие функции function BackupCheck_1(): Boolean; function BackupCheck_2(): Boolean; function BackupCheck_3(): Boolean; function BackupCheck_4(): Boolean; пишет варнинги. типо какие то предупреждения . кто может подскажет с чем это связано? Скрипт использую этот BackUpPage.iss 2 часа назад, P.S.Enot сказал: Доброго времени суток всем. Собрал бекап, удаление и тд. Но по чему то на вот такие функции function BackupCheck_1(): Boolean; function BackupCheck_2(): Boolean; function BackupCheck_3(): Boolean; function BackupCheck_4(): Boolean; пишет варнинги. типо какие то предупреждения . кто может подскажет с чем это связано? Скрипт использую этот BackUpPage.iss Пожалуй сам себе отвечу, может кому то пригодится. Просто в функциях нужно было дописать Result:= True; так же рабочий вариант прилагаю BackUpPage.iss Edited February 2 by P.S.Enot Quote Share this post Link to post Short link Share on other sites
P.S.Enot 416 #516045 Posted February 9 (edited) Всем доброго времени суток. ребята помогите сделать еще две кнопки ссылками на социальные профили. типа вк и канал ютуб . вот код но я не понял как в него встроить еще две иконки сделать их кликабельными с переходом на группу вк и канал ютуб. Кому не сложно помогите пожалуйста . За ранее благодарю . вот мой код кнопка ссылкой.txt Сам себе походу опять и отвечу. Вот так вот слепил вариант. короче код не придумал Две Кнопки Social.txt картинки не забываем добавить и указать к ним путь. Вариант без Botva2 Edited February 9 by P.S.Enot Quote Share this post Link to post Short link Share on other sites
hevi 0 #517021 Posted March 1 09.02.2022 в 14:26, P.S.Enot сказал: Всем доброго времени суток. ребята помогите сделать еще две кнопки ссылками на социальные профили. типа вк и канал ютуб . вот код но я не понял как в него встроить еще две иконки сделать их кликабельными с переходом на группу вк и канал ютуб. Кому не сложно помогите пожалуйста . За ранее благодарю . вот мой код кнопка ссылкой.txt Сам себе походу опять и отвечу. Вот так вот слепил вариант. короче код не придумал Две Кнопки Social.txt картинки не забываем добавить и указать к ним путь. Вариант без Botva2 Афигеть ты пролистал все страницы и нашёл что тебе нужно))))) Quote Share this post Link to post Short link Share on other sites
P.S.Enot 416 #517030 Posted March 1 4 часа назад, hevi сказал: Афигеть ты пролистал все страницы и нашёл что тебе нужно))))) нет не угадал Quote Share this post Link to post Short link Share on other sites