На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ Inno Setup
Пожалуйста, выделяйте текст инсталлятора написанного на Inno Setup тегом [сode=ins] ... [/сode]. Для этого используйте кнопку [code=ins] в форме ответа или выпадающего списка, если нужно вставить код из другой программы.


Обязательно указывать:

  • Программу, используемую для создания инсталлятора.



Если в ходе решения проблемы возникли дополнительные вопросы, по возможности задаем их в той же теме.


Выразить свое отношение к модераторам раздела можно здесь: Profi, Fester
Модераторы: Fester
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> помогите с GetVersionNumbersString , GetVersionNumbersString
    function GetVersionNumbersString(const Filename: String; var Version: String): Boolean;
    подскажите что писать
      Писать правильно сформулированный вопрос. :D
        Как оформить function GetVersionNumbersString(const Filename: String; var Version: String): Boolean; чтобы вписать название файла и версию
          ExpandedWrap disabled
            [Code]
            var ver: String;
             
            procedure InitializeWizard();
            begin
              GetVersionNumbersString('c:\somefile.exe', ver);
              //Теперь номер версии в виде строки (напр. 1.2.3.0) файла somefile.exe находится в переменной ver
            end;
            Скрытый текст
            [Code]
            var ver: String;

            procedure InitializeWizard();
            begin
            GetVersionNumbersString('{app}\worldoftanks.exe', 0.8.11);
            //Теперь номер версии в виде строки (напр. 1.2.3.0) файла somefile.exe находится в переменной ver
            end;

            правильно?
              Функция GetVersionNumbersString предназначена для получения версии файла. Чего ты хочешь добиться, передавая в неё вместо переменной (куда она будет записывать № версии) цифры 0.8.11?
                0.8.11 это версия
                  [Telepat="On"]
                  Вам надо куда-то на форму вывести версию устанавливаемого файла? Или же установить только если версия больше (это решается штатными средствами)? Или же все же изменить версию какого-то файла при сборке инсталлятора?
                  [Telepat="Off"]
                    при установки если не подходит версия
                    Прикреплённая картинка
                    Прикреплённая картинка
                      как так сделать?
                        ExpandedWrap disabled
                          procedure CurStepChanged(CurStep: TSetupStep);
                            var ver: String;
                          begin
                            if (CurStep = ssInstall) then
                            begin
                              GetVersionNumbersString(ExpandConstant('{app}') + '\somefile.exe', ver);
                              if ver <> '0.8.11' then
                              begin
                                MsgBox('Данный модпак предназначен только для версии 0.8.11!', mbError, MB_OK);
                                Abort();
                              end;
                            end;
                          end;
                          а можно переставить на
                          Прикреплённая картинка
                          Прикреплённая картинка
                            с
                            Прикреплённая картинка
                            Прикреплённая картинка


                            Добавлено
                            если меняю версию серавно одно и тоже вот script.iss

                            Скрытый текст

                            ExpandedWrap disabled
                              #define GameID            "{5F05CE9B-7768-490E-9A71-C6R92B4EX123}"  ;Ид инстолятора
                              #define MyAppName         "Nelegalsp Mod Pack 0.8.11"                     ;Название инстоллятора
                              #define MyInfoVer         "3.0"                                 ;Версия инсталлятора
                              #define MyAppVer          "3.0"                                     ;Версия игры
                              #define MyAppPublisher    "UPRO inc."                                ;Имя компании или человека кто делал
                              #define MyAppURL          "www.worldoftanks.ru"             ;Ссылка для лого
                               
                              #include "Components.iss"                                           ;Компаненты, они же моды
                              #include "Messages.iss"                                            ;Сообщение, надписи на кнопках и т.д.
                               
                              [Setup]
                              AppId={{#GameID}
                              AppName={#MyAppName}
                              AppVersion={#MyAppVer}
                              ;AppVerName={#MyAppName} {#MyAppVersion}
                              AppPublisher={#MyAppPublisher}
                               
                              PrivilegesRequired=none
                              //====={ Ссылки }=====\\
                              AppPublisherURL={#MyAppURL}
                              AppSupportURL={#MyAppURL}
                              AppUpdatesURL={#MyAppURL}
                               
                              //====={ Папка устанвки }=====\\
                              ;DefaultDirName={pf}\{#MyAppName}
                              DefaultDirName={code:MyDirName}
                              DefaultGroupName={#MyAppName}
                               
                              //====={ Картинки }=====\\
                              SetupIconFile=Files\wot_ico.ico
                              WizardSmallImageFile=Files\img2.bmp
                              WizardImageFile=Files\img1.bmp
                               
                              //====={ Отключение строниц }=====\\
                              DisableProgramGroupPage=yes
                               
                              //====={ Лицензия и Фак }=====\\
                              LicenseFile=licensia.txt
                              InfoBeforeFile=faq.rtf
                               
                              //====={ Папка создания и название сетапа }=====\\
                              OutputDir=.\Output
                              OutputBaseFilename=Setup
                               
                              //====={ Сжатие сетапа }=====\\
                              InternalCompressLevel=ultra64
                              Compression=lzma2/ultra64
                              SolidCompression=true
                               
                              //====={ Основные файлы сетапа }=====\\
                              [Files]
                              Source: Files\logo.bmp; Flags: dontcopy noencryption noencryption
                               
                              [Code]
                              function MyDirName(S:String): String;
                              var
                                InsPath: String;
                                er: boolean;
                                myFile:String;
                              begin
                                Result:=ExpandConstant('C:\Games\World_of_Tanks\'); //если ключа нет то будем ставить сюда
                                er := RegQueryStringValue(HKLM, 'SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1', 'InstallLocation', InsPath);
                                if er and (InsPath<>'') then //если ключ существует и там что-то записано
                                begin
                                  Result := InsPath;
                                end;
                              end;
                               
                              procedure LogoOnClick(Sender: TObject);
                              var ResCode: Integer;
                              begin
                                ShellExec('', '{#MyAppURL}', '' , '', SW_SHOW, ewNoWait, ResCode)
                              end;
                               
                              procedure RedesignWizardForm;
                              var
                               i: integer;
                                BtnPanel: TPanel;
                                BtnImage: TBitmapImage;
                               
                              begin
                                ExtractTemporaryFile('logo.bmp')
                                BtnPanel:=TPanel.Create(WizardForm)
                                with BtnPanel do begin
                                  Left:=0
                                  Top:=0
                                  Width:=0
                                  Height:=0
                                  Cursor:=crHand
                                  OnClick:=@logoOnClick
                                  Parent:=WizardForm
                                end;
                               
                                with WizardForm do
                                begin
                                  Caption := ExpandConstant('{cm:Main}');
                                end;
                               
                                with WizardForm.WizardBitmapImage do
                                begin
                                  Width := ScaleX(502);
                                end;
                               
                                with WizardForm.WelcomeLabel2 do
                                begin
                                  Visible := False;
                                end;
                               
                                with WizardForm.WelcomeLabel1 do
                                begin
                                  Visible := False;
                                end;
                               
                                with WizardForm.WizardSmallBitmapImage do
                                begin
                                  Left := ScaleX(0);
                                  Width := ScaleX(502);
                                  Height := ScaleY(70);
                                end;
                               
                                with WizardForm.PageDescriptionLabel do
                                begin
                                  Visible := False;
                                end;
                               
                                with WizardForm.PageNameLabel do
                                begin
                                  Visible := False;
                                end;
                               
                                with WizardForm.WizardBitmapImage2 do
                                begin
                                  Width := ScaleX(502);
                                end;
                               
                                with WizardForm.FinishedLabel do
                                begin
                                  Visible := False;
                                end;
                               
                                with WizardForm.FinishedHeadingLabel do
                                begin
                                  Visible := False;
                                end;
                              end;
                               
                              procedure CurStepChanged(CurStep: TSetupStep);
                                var ver: String;
                              begin
                                if (CurStep = ssInstall) then
                                begin
                                  GetVersionNumbersString(ExpandConstant('{app}') + '\WordlOfTanks.exe', ver);
                                  if ver <> '0.8.11' then
                                  begin
                                    MsgBox('Данный модпак предназначен только для версии 0.8.11!', mbError, MB_OK);
                                    Abort();
                                  end;
                                end;
                              end;
                               
                              function DeleteFile(const FileName: string): Boolean;
                              begin
                               
                              end;


                            Добавлено
                            все равно*
                            Сообщение отредактировано: Profi -
                              Цитата Nelegal @
                              если меняю версию серавно одно и тоже вот script.iss

                              Это потому, что в винде номер версии кодируется не 3-мя а четырьмя числами (напр. 0.8.11.0).
                              Если тебе надо проверять на соответствие только первые 3, то вот код:

                              ExpandedWrap disabled
                                function NextButtonClick(CurPageID: Integer): Boolean;
                                var ms, ls: Cardinal;
                                begin
                                    if CurPageID = wpSelectDir then
                                    begin
                                        GetVersionNumbers(ExpandConstant('{app}\worldoftanks.exe'), ms, ls);
                                 
                                        if not (((ms shr 16)    =  0)  and
                                                ((ms and $ffff) =  8)  and
                                                ((ls shr 16)    = 11)) then
                                        begin
                                            MsgBox('Данный модпак предназначен только для версии 0.8.11!', mbError, MB_OK);
                                            Result := false;
                                        end
                                        else
                                            Result := true;
                                    end
                                    else
                                        Result := true;
                                end;


                              Чтобы было понятнее, где тут твой номер версии, тоже приведу картинку ;)
                              Прикреплённая картинка
                              Прикреплённая картинка
                                спасибо большое:)

                                Добавлено
                                Помоги с чтобы удалял перед установкой папки:
                                1. res_mods/xvm/*
                                2. res_mods/0.8.11
                                function DeleteFile(const FileName: string): Boolean;
                                begin

                                end;
                                !
                                Вопрос должен звучать как-то так: "А как удалить перед установкой следующие папки?"! Еще одно такое сообщение, и предупреждение будет не устным!
                                Сообщение отредактировано: Profi -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0433 ]   [ 23 queries used ]   [ Generated: 28.04.24, 13:24 GMT ]