Jump to content
Korean Random
EvilAlex

Создание инсталляторов для модпаков на базе Inno Setup

Recommended Posts

А ты вернись к уже "проминусованному" сообщению. И перейди по ссылке, где всё объясняется.

а так оно не пашет

#define MyApp           "MyApp версии #1 от GetDateTimeString('dd/mm/yyyy', '', '')"

поэтому с другой стороны через код лучше

Share this post


Link to post

Short link
Share on other sites
а так оно не пашет

И правильно. Ты же взял выполняемую часть в кавычки, теперь это просто строка.

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites
а так оно не пашет

 

Я учусь и за помощь все огромное спасибо! Да и не злись на меня плюсов и тебе наставлю мне не жалко, я просто подчеркнул своим минусом, что ты просто сарказм свой показываешь , а просто помочь не смог сначала, Короче всем спасибо!

И не посылайте меня часто ....

Edited by Nowik1971

Share this post


Link to post

Short link
Share on other sites
Выложил исходники своего инсталлятора

Сейчас ещё мейнстрим по этому делу начнётся, а мы будем теми, кто его завёл =)

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

 

 

Выложил исходники своего инсталлятора, может кому-то пригодится. http://www.koreanran...к-с-инсталлято/

Отлично! Кое что мне надо почерпнуть у тебя, а именно это проверка обновлений.... как до этого дойду напишу в личку может поможешь если сам не разберусь  

Share this post


Link to post

Short link
Share on other sites

Bass использовать. Хотя тут уже лучше ogg использовать вместо mp3.

Share this post


Link to post

Short link
Share on other sites

Без проблем, чем смогу).

В следующих версиях подумываю сделать веб-установку, чтобы при установке скачивались только выбранные компоненты.

Share this post


Link to post

Short link
Share on other sites

Privet vsem. Kak delati stobi praverca bila cerez ProgressBar???

 

 

#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;

Edited by asterix93

Share this post


Link to post

Short link
Share on other sites

Ты о чём?

Tam esti praverca abnavlenie i ea haciu delati eio v ProgresBar

post-33758-0-12106800-1453639123_thumb.png

post-33758-0-00240200-1453639281_thumb.png

Edited by asterix93

Share this post


Link to post

Short link
Share on other sites

Так по времени проверка занимает до секунды, зачем прогрес бар. И даже если его делать, сколько позиций будет, всего до GET и после.

Share this post


Link to post

Short link
Share on other sites

Так по времени проверка занимает до секунды, зачем прогрес бар. И даже если его делать, сколько позиций будет, всего до GET и послеHarasho 

harasho a kak delati stobi sabsenia bila na stranita

Share this post


Link to post

Short link
Share on other sites

А если в общем, то есть TNewProgressBar.

harasho a kak delati stobi sabsenia bila na stranita

Например,TMemo на форме вместо Msgbox Edited by wotunion

Share this post


Link to post

Short link
Share on other sites

 

 

А если в общем, то есть TNewProgressBar. asterix93, on 24 Jan 2016 - 15:57, said: harasho a kak delati stobi sabsenia bila na stranita Например,TMemo на форме вместо Msgbox
 подскажите  в примере как этот скрипт подключить и еще вопрос... я не совсем все понимаю, вот например я выложил свежую версии. пака на яндекс диск как сделать чтобы в ангаре  и при установке проверялось и выдавалось сообщение о том что есть обновление.. и гадо перейти по ссылке....

Заранее спасибо за помощь...

Share this post


Link to post

Short link
Share on other sites

подскажите в примере как этот скрипт подключить и еще вопрос... я не совсем все понимаю, вот например я выложил свежую версии. пака на яндекс диск как сделать чтобы в ангаре и при установке проверялось и выдавалось сообщение о том что есть обновление.. и гадо перейти по ссылке....

Заранее спасибо за помощь...

vot derji

http://www.koreanrandom.com/forum/index.php?app=core&module=attach&section=attach&attach_id=83756

Edited by asterix93
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

WoT CacheCleaner.rarНу, Гуру подскажите как мне вставить этот код очистки кеша  чтобы работал, а то пишет ошибку, я языка не знаю вот и прошу помощи.

'код скрипта'

#include "бекап_.iss"

//========================================================================================================\\function DeleteCheck: Boolean;begin  If DeletMods.Checked thenbegin  DelTree(ExpandConstant('{app}\res_mods'), True, True, True);  CreateDir(ExpandConstant('{app}\res_mods\{#Patch}'));end;end;//"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""//function MoveCheck: Boolean;begin  If BackupMods.Checked thenbegin  MoveDir(ExpandConstant('{app}\res_mods\'),ExpandConstant('{app}\res_mods\backup'));  CreateDir(ExpandConstant('{app}\res_mods\{#Patch}'));end;end;//"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""//procedure Deletkahh;begin  If Deletkah.Checked thenbeginSet fso = CreateObject("Scripting.FileSystemObject")            Set WshShell = CreateObject("WScript.Shell")            Set strFolder = fso.GetFolder(WshShell.ExpandEnvironmentStrings("%APPDATA%"))            TempGameFolder = (strFolder & "\" & "Wargaming.net" & "\" & "WorldOfTanks")            Set objFSO=Createobject("Scripting.Filesystemobject")            Set objFolder=objFSO.GetFolder(TempGameFolder)            Set objFiles=objFolder.Files            For Each objFile In objFiles                If objFile.Name    <> "preferences.xml" And objFile.Name <> "preferences_ct.xml" And objFile.Name <> "preferences_ctp.xml" Then                    objFSO.DeleteFile TempGameFolder & "\" & objFile.Name, True                End if            Next            For Each objSubFolder In objFolder.SubFolders                If objSubFolder.Name    <> "xvm" Then                    objFSO.DeleteFolder TempGameFolder & "\" & objSubFolder.Name                End if//---------------------------------------------------------------------------//procedure CustomBackupChanged(CurStep: TSetupStep);
begin
  If CurStep=ssInstall then
begin
  DeleteCheck;
  MoveCheck;
end;
end;

кто сможет подправьте... или скажите как мне подключить внешний скрипт вот этот.WoT CacheCleaner

Edited by Nowik1971

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...