Jump to content
Korean Random

Lom

User
  • Content Count

    1,007
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by Lom


  1. а куда ты их перемещаешь?

    в общем, сейчас я проделал следующее: удалил вообще все моды, скачал с оф. сайта xvm архив xvm-6.3.2.1, закинул файлы по инструкции, все работает! xvm не ломает, маркеры от кехо, хитлог, лампочка...все работает!

    На сборке с xvm от ПроТанки работает, на оф. xvm работает! Проверяйте свои сборки на целостность и наличие ошибок!

    понял. значит именно с моей версией ХВМ  он не работает. хотя странно вроде все хвм почто одинаковые в общей своей структуре. проверю скачав оф.версию.  автор тока без обид. мне просто реально понравилось то что ты выложил но у меня не заработало потому и написал.


  2. а зачем двай файла перемещать?

     Нужны все файлы из архива...! 

    я то все и перемещал! и когда не сработало решил проверить какой из файлов не работает. и по одному стал перемещать вот и выяснил какой из них.


  3. Гуру инсталляторов подскажите,как совместить инсталл танков и кораблей в одном флаконе? Имеется ввиду выбор игры вначале и потом у каждой свой выбор компонентов и тд.? 

    я конечно не гуру и почти ничего в этом деле не знаю но чисто теоретически...что нельзя в установщике просто сделать две страницы компонентов?!  На 1 танки на 2 корабли))  а путь где установлена игра у многих разный и по любому в начале установки каждый указывает путь к своей игре))) 


  4. Тогда копай функции, которые называются Uninstall*** и связанные с ними.

    в коде кроме вот этого нигде ничего нет с словом Uninstall

    Function InitializeUninstall(): Boolean;
    begin
     FileCopy(ExpandConstant('{app}\{#SKinDll}'), ExpandConstant('{tmp}\{#SKinDll}'), False);
     FileCopy(ExpandConstant('{app}\{#SKin}'), ExpandConstant('{tmp}\{#SKin}'), False);
     LoadSkinU(ExpandConstant('{tmp}\{#SKin}'), '');
     DeleteFile(ExpandConstant('{app}\{#SKinDll}'));
     DeleteFile(ExpandConstant('{app}\{#SKin}'));
     Result:=True;
    end;
    
    Procedure DeinitializeUninstall();
    begin
     UnloadSkinU();
    end;
    

  5. Всё стандартное запоминается автоматически (если не отключены предназначенные для этого параметры в [setup], и включено создание деинсталлятора), для всего кастомного запоминание нужно делать вручную.

    Запись всего, что нужно запомнить, обычно производится в реестр. Но можно и записывать деинсталлятор (при этом, после деинсталляции программы, вся "память" так же пропадёт).

    Пример способа записи\считывания из реестра.

    #define SKinDll "ISSkinExW.dll"
    #define SKin "VZ_Orange.cjstyles"
    
    [Setup]
    WizardSmallImageFile=10ввFon.bmp
    WizardImageFile=wallpaper-1967807.bmp
    AppName="ххх"
    AppVerName=1.0
    DefaultDirName=C:\Games\World_of_Tanks\
    OutputBaseFilename=ххх
    SetupIconFile=F:\А ДЛЯ СБОРКИ\мои стили\скрины с исо\VZ_Orange\yahoo.ico
    Compression=lzma
    SolidCompression=yes
    Uninstallable=no
    DirExistsWarning=no
    

    мой установщик я  скином сделал мож поэтому? 


  6. @ЛОМ, можно использовать скины и без ини-конфига.

    'Код:'

    #define SKinDll "ISSkinExW.dll"
    #define SKin "Tiger.cjstyles"
    
    [Setup]
    AppName=My prog
    AppVerName=My prog
    DefaultDirName={pf}\My prog
    
    [Files]
    Source: {#SKinDll}; DestDir: {app}; Flags: ignoreversion
    Source: {#SKin}; DestDir: {app}; Flags: ignoreversion
    
    [Code]
    Procedure LoadSkin(lpszPath, lpszIniFileName: string); external 'LoadSkin@files:{#SKinDll} stdcall delayload setuponly';
    Procedure UnloadSkin(); external 'UnloadSkin@files:{#SKinDll} stdcall delayload setuponly';
    Procedure LoadSkinU(lpszPath, lpszIniFileName: string); external 'LoadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly';
    Procedure UnloadSkinU(); external 'UnloadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly';
    
    Function InitializeSetup(): Boolean;
    begin
     ExtractTemporaryFile('{#SKin}');
     LoadSkin(ExpandConstant('{tmp}\{#SKin}'), '');
     Result := True;
    end;
    
    Procedure DeinitializeSetup();
    begin
     UnloadSkin();
     WizardForm.Free;
    end;
    
    Function InitializeUninstall(): Boolean;
    begin
     FileCopy(ExpandConstant('{app}\{#SKinDll}'), ExpandConstant('{tmp}\{#SKinDll}'), False);
     FileCopy(ExpandConstant('{app}\{#SKin}'), ExpandConstant('{tmp}\{#SKin}'), False);
     LoadSkinU(ExpandConstant('{tmp}\{#SKin}'), '');
     DeleteFile(ExpandConstant('{app}\{#SKinDll}'));
     DeleteFile(ExpandConstant('{app}\{#SKin}'));
     Result:=True;
    end;
    
    Procedure DeinitializeUninstall();
    begin
     UnloadSkinU();
    end;
    

    При этом используйте IsSkinEx, а не IsSkin.

    И не стоит использовать скин в деинсталляторе - он там нафиг не нужен.

    СПАСИБО!!! да просто интересно было почему не работает  ( хотя для начинающих вроде меня для инсталлятора можно ведь пользовать?! ))))  КАК только попробовал твой скрипт всё заработало!!! там который пример скрипта ваще не пашет! а с твоим только так!!! еще раз СПАСИБО!!! )))


  7. Антивирь мог скушать.

    P.S. В ветке есть примеры использования других шаблонов с другой библиотекой под inno. И самое главное, как сказал Kotyarko_O, поставьте китайскую расширенную версию инно, иначе многие возможности многих скриптов у Вас по просту не будут работать.

    китайская расширенная эта та что тут в начале форума выложена да? она то у меня и стоит))) а антивиря у меня давно нет)))  просто как я понял сами скины в нём и не работают)) 


  8. #define SKinIni "NormalBlack.ini"
    

    В каждом стиле внутри свой "конфиг".

    а где этот конфиг? даже в этом примере ( как видно по фотке что я выложил выше ) в этой папке нет файла с расширением .ini ?  кроме того что он просто написан в конфиге. 

     


  9. кто нибудь может объяснить про скины? в скачанном "Inno Setup 5"  в папке  " Dll Examples \ IsSkinEx [3.0.0.2] "   есть скрипт  " Example "  

    ну это пример это понятно. после того как компильнешь его в папке  "Output" появляется соответствующий инсталлятор. но почему когда заменяешь " Tiger.cjstyles "  на любой другой ничего не работает? просто появляется стандартный инстал. я в этом скрипте везде и названия менял и местами все менял  ничего не помогает. в чем проблема подскажите пожалуйста если не трудно)

     

    вот сам скрипт 

    #ifdef UNICODE
      #define A "W"
      #define SKinDll    "ISSkinExW.dll"
    #else
      #define A "A"
      #define SKinDll    "ISSkinExA.dll"
    #endif
    
    #define SKin    "Tiger.cjstyles"
    #define SKinIni "NormalBlack.ini"
    
    [Setup]
    AppName=My prog
    AppVerName=My prog
    DefaultDirName={pf}\My prog
    
    [Files]
    Source: compiler:Dll Pack\{#SKinDll}; DestDir: {app}; Flags: ignoreversion
    Source: {#SKin}; DestDir: {app}; Flags: ignoreversion
    
    [code]
    function ShowWindow(hWnd: Integer; uType: Integer): Integer; external '[email protected] stdcall';
    procedure LoadSkin(lpszPath, lpszIniFileName: string); external 'LoadSkin@{tmp}\{#SKinDll} stdcall delayload setuponly';
    procedure UnloadSkin(); external 'UnloadSkin@{tmp}\{#SKinDll} stdcall delayload setuponly';
    procedure LoadSkinU(lpszPath, lpszIniFileName: string); external 'LoadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly';
    procedure UnloadSkinU(); external 'UnloadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly';
    
    function InitializeSetup(): Boolean;
    begin
      ExtractTemporaryFile('{#SKinDll}');
      ExtractTemporaryFile('{#SKin}');
      LoadSkin(ExpandConstant('{tmp}\{#SKin}'), '{#SKinIni}');
      Result:=True;
    end;
    
    procedure DeinitializeSetup();
    begin
      UnloadSkin;
      WizardForm.Free;
    end;
    
    function InitializeUninstall(): Boolean;
    begin
      FileCopy(ExpandConstant('{app}\{#SKinDll}'), ExpandConstant('{tmp}\{#SKinDll}'), False);
      FileCopy(ExpandConstant('{app}\{#SKin}'), ExpandConstant('{tmp}\{#SKin}'), False);
      LoadSkinU(ExpandConstant('{tmp}\{#SKin}'), '{#SKinIni}');
      DeleteFile(ExpandConstant('{app}\{#SKinDll}'));
      DeleteFile(ExpandConstant('{app}\{#SKin}'));
      Result:=True;
    end;
    
    procedure DeinitializeUninstall();
    begin
    	UnloadSkinU;
    end;
    

     


  10. народ подскажите если не трудно как в данном скрипте увеличить окно установщика ?  ту картинку что появляется до открытия установщика могу сделать и больше и меньше а вот сам установщик  в размерах ну никак не могу.

    ;#define Video
    [Setup]
    AppName=My Program
    AppVersion=1.5
    DefaultDirName={pf}\My Program
    WizardImageFile=Fon.bmp
    OutputBaseFilename=2
    
    [Files]
    Source: compiler:Dll Pack\IsPicture_for_all.dll; Flags: dontcopy
    Source: Fon.bmp; Flags: dontcopy
    #ifdef Video
    Source: XVID\fon.avi; Flags: dontcopy
    #endif
    
    
    [Code]
    //-----------------------------------------
    procedure Initialize(AhWnd,BhWnd:hWnd);external 'Initialize@{tmp}\IsPicture_for_all.dll stdcall delayload';
    //  Здесь указываем хендлы окон, на данный момент, лучше пока указывать
    //  WizardForm.Handle - первым и MainForm.Handle вторым.
    //-----------------------------------------
    procedure XvidVideo(fn:String;Seth:string);external 'XvidVideo@{tmp}\IsPicture_for_all.dll stdcall delayload';
    //  Эта процедура загружает фоновое avi-видео.
    //  Seth  - задаем координаты через пробел в одинарных кавычках
    // пример:   XvidVideo(ExpandConstant('{tmp}\fon.avi'), '351 201 236 132');
    //-----------------------------------------
    procedure Deinitialize;external 'Deinitialize@{tmp}\IsPicture_for_all.dll stdcall delayload';
    //    отменяет свзывание форм между собой, выгружает видео.
    
    //-----------------------------------------
    function NewFont(Height:Integer;thickness,italic,underline,strikeout:DWORD;name:String):hWnd;external 'NewFont@{tmp}\IsPicture_for_all.dll stdcall delayload';
    //  Создает шрифты для замены стандартных. Необходима для борьбя с артефактами сглаживания.
    //   Height,                    // высота шрифта
    //   thickness,                // насыщенность шрифта
    //   italic,                 // курсив
    //   underline,               // Подчеркнутый
    //   strikeout,               // Зачеркнутый
    //   name                       // имя шрифта
    //-----------------------------------------
    procedure SplashWnd(FileName:PAnsiChar;Time,width,height:Integer);external 'SplashWnd@{tmp}\IsPicture_for_all.dll stdcall delayload';
    //  Создает Splash-заставку
    //   Прозрачность, пока, не поддерживается
    //   FileName,                    // имя файла
    //   Time,                      // скорость появления в миллисекундах
    //   width,                     // ширина
    //   height,                   // высота
    procedure EndSplash(Time1,Time2:Integer);external 'EndSplash@{tmp}\IsPicture_for_all.dll stdcall delayload';
    //  Закрываем Splash-заставку
    //   Time1,                      // выжидание до закрытия в миллисекундах
    //   Time,                      // скорость закрытия в миллисекундах
    //-----------------------------------------
    //-----------------------------------------
    
    function GetSystemMetrics(nIndex:Integer):integer; external '[email protected] stdcall delayload';
    
    const
       TfonColor = $000008; // Цвет фона $000008 - не изменять!
       TfontColor = $ffffff; // Цвет тeкста
    
    #ifdef Video
    
    #include "XVID\xvid.iss"
    #endif
    #include "WizardFormResise.iss"
    Var Font1,Font2:hWnd;
    
    
    function InitializeSetup(): Boolean;
    begin
      ExtractTemporaryFile('IsPicture_for_all.dll');
      ExtractTemporaryFile('fon.bmp');
      SplashWnd(ExpandConstant('{tmp}\fon.bmp'),1500,ScaleX(600),ScaleY(420));
    #ifdef Video
        XvidInstall;
      ExtractTemporaryFile('fon.avi');
    #endif
      EndSplash(1500,1000);
      Result:=True;
    end;
    
    procedure InitializeWizard();
    begin
    Font1:= NewFont(16,600,0,0,0,'Comic Sans MS');
    Font2:= NewFont(24,900,0,0,0,'Tahoma');
    
    #ifdef Video
    if CanUseXvid then begin
        WizardForm.AutoScroll := False;
        WizardForm.ClientWidth:= ScaleX(600);
        WizardForm.ClientHeight:=ScaleY(420);
        WizardForm.Center;
        end
        WizardFormResise;
    #endif
    
        WizardForm.WizardSmallBitmapImage.Hide;
        WizardForm.WizardBitmapImage2.Hide;
        WizardForm.DirEdit.AutoSelect:=False;
    //-----------------------------------------
    
    //-----------------------------------------
    //---------------// не изменять!\\---------------\\
    //   задаем цвет всем элементам,которые нам нужны.
        WizardForm.WelcomePage.Color:=TfonColor;// не изменять!
        WizardForm.FinishedPage.Color:=TfonColor;
        WizardForm.InnerPage.Color:=TfonColor;
        WizardForm.DirEdit.Color:=TfonColor;
        WizardForm.ReadyMemo.Color:=TfonColor;
        WizardForm.MainPanel.Color:=TfonColor;
    //---------------// не изменять!\\---------------\\
    //-----------------------------------------
    
    //-----------------------------------------
    //---------------//Применяем шрифт\\---------------\\
        WizardForm.Font.Handle:=Font1;
        WizardForm.WelcomeLabel1.Font.Handle := Font2;
        WizardForm.FinishedHeadingLabel.Font.Handle := Font2;
        WizardForm.PageNameLabel.Font.Handle := Font1;
        WizardForm.Font.Color:=TfontColor;
    //---------------//Применяем шрифт\\---------------\\
    //-----------------------------------------
    
    //-----------------------------------------
    //   Приделываем прозрачность к SelectDirBitmapImage
    //   иначе, придется любоваться на красивый серый
    //   квадратик вокруг изображения папки :)
        WizardForm.SelectDirBitmapImage.BackColor := clNone;
        WizardForm.SelectDirBitmapImage.ReplaceColor := clBtnFace;
    //-----------------------------------------
    
    //   скрываем изображение с финишной страницы
        WizardForm.WizardBitmapImage.Parent := MainForm;
        WizardForm.WizardBitmapImage.SetBounds(0, 0, WizardForm.ClientWidth, WizardForm.ClientHeight);
    //-----------------------------------------
    //-----------------------------------------
    //   Запускаем в работу все, что приготовили:
    //   указываем формы, с которыми будет работать длл-ка,
    //-----------------------------------------
        Initialize(WizardForm.Handle,MainForm.Handle);
    //-----------------------------------------
    //  мультимедийные возможности - Фоновое видео
    //-----------------------------------------
    #ifdef Video
    if CanUseXvid then
      XvidVideo(ExpandConstant('{tmp}\fon.avi'), '351 201 236 132');
    #endif
    //-----------------------------------------
    end;
    
    procedure DeinitializeSetup();
    begin
    //-----------------------------------------
    //   Не забываем про Deinitialize
    //   если не хотим разнообразных ошибок при выходе.
    //-----------------------------------------
      Deinitialize;
    //-----------------------------------------
    #ifdef Video
      XvidUnInstall;
    #endif
    end;
     


  11.  

    Вот так будет

    'Пример с твоими компонентами'

    [Types]
    Name: "compact"; Description: "Рекомендуемый набор компонентов";
    Name: "full"; Description: "Выбрать все компоненты";
    Name: "custom"; Description: "Пользовательский режим"; Flags: iscustom;
    
    [Components]
    Name: "KMP"; Description: "АИМ"; Types: full  custom;  Flags:  unchecked;
    Name: "KMP\I"; Description: ". Аим САЕ 18,1"; Types: full  custom;  Flags: exclusive
    Name: "KMP\CC"; Description: ". Аим САЕ 25"; Types: full  custom;  Flags: exclusive
    Name: "KMP\ZZ"; Description: ". Аим Lportii"; Types: full  custom;  Flags: exclusive
    Name: "KMP\XX"; Description: ". Aим Bot Ogre Ninja"; Types: full  custom;  Flags: exclusive
    Name: "KMP\S"; Description: ". Шайтан 074"; Types: full  custom;  Flags: exclusive
    Name: "KMP\X"; Description: ". Автоприцел захвата за припятствиями(не чит)"; Types: full  custom;  Flags: exclusive
    
    Или вот так сделай чтобы ничего не  было выбрано 
    
    [Components]
    Name: "KMP"; Description: "АИМ"; Types: full  custom;  Flags: Flags: unchecked;

     


    Вот так будет

    'Пример с твоими компонентами'

    [Types]
    Name: "compact"; Description: "Рекомендуемый набор компонентов";
    Name: "full"; Description: "Выбрать все компоненты";
    Name: "custom"; Description: "Пользовательский режим"; Flags: iscustom;
    
    [Components]
    Name: "KMP"; Description: "АИМ"; Types: full  custom;  Flags:  unchecked;
    Name: "KMP\I"; Description: ". Аим САЕ 18,1"; Types: full  custom;  Flags: exclusive
    Name: "KMP\CC"; Description: ". Аим САЕ 25"; Types: full  custom;  Flags: exclusive
    Name: "KMP\ZZ"; Description: ". Аим Lportii"; Types: full  custom;  Flags: exclusive
    Name: "KMP\XX"; Description: ". Aим Bot Ogre Ninja"; Types: full  custom;  Flags: exclusive
    Name: "KMP\S"; Description: ". Шайтан 074"; Types: full  custom;  Flags: exclusive
    Name: "KMP\X"; Description: ". Автоприцел захвата за припятствиями(не чит)"; Types: full  custom;  Flags: exclusive
    
    Или вот так сделай чтобы ничего не  было выбрано 
    
    [Components]
    Name: "KMP"; Description: "АИМ"; Types: full  custom;  Flags: Flags: unchecked;

    короче у меня чет не получается((  и по ходу я уже достал тебя видимо с такими детскими вопросами)))


  12. Т.е. Types: full выбраны все по умолчанию, Types:  compact  выбранные при установке по умолчанию... Types:custom при установке галку ставит пользователь

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

     

     

     

    [Components]

    Name: "KMP"; Description: "АИМ"; Flags: checkablealone

    Name: "KMP\I"; Description: ". Аим САЕ 18,1"; Flags: exclusive

    Name: "KMP\CC"; Description: ". Аим САЕ 25"; Flags: exclusive

    Name: "KMP\ZZ"; Description: ". Аим Lportii"; Flags: exclusive

    Name: "KMP\XX"; Description: ". Aим Bot Ogre Ninja"; Flags: exclusive

    Name: "KMP\S"; Description: ". Шайтан 074"; Flags: exclusive

    Name: "KMP\X"; Description: ". Автоприцел захвата за припятствиями(не чит)"; Flags: exclusive

     

     

     


  13.  

    Короче если выбираешь например шары для арты из PFMods Номер 1, то автоматом блокируется выбор похожего мода из Читмоды по отдельности номер 2, а сделано это для того чтобы пользователи модпака не ставили все подряд, а потом писали что не работает, так как эти моды по функциям похожи, а в остальном разные и конфликтуют, Ну, ты в общем понял.... и выше тебе так же картинку привели как иерархию сделать....   

     

    спасибо)) короче сделал во так , сойдет)) а не подскажите как сделать чтобы когда открываешь окно выбора компонентов по умолчанию галочки чтобы не стояли? а то у меня на некоторых стоят на некоторых нет((  понимаю что достаю вас но всё же)))

    в скрипте вот так у меня записано 

     

     

×
×
  • Create New...