-
Content Count
1,007 -
Joined
-
Last visited
-
Days Won
3
Posts posted by Lom
-
-
а зачем двай файла перемещать?
Нужны все файлы из архива...!
я то все и перемещал! и когда не сработало решил проверить какой из файлов не работает. и по одному стал перемещать вот и выяснил какой из них.
-
при перемещении именно этиъ двух файлов - markersAliveNormal.xc и markersDeadNormal.xc ХВМ перестает работать( ну у меня лично так. мож у кого работает?
-
Гуру инсталляторов подскажите,как совместить инсталл танков и кораблей в одном флаконе? Имеется ввиду выбор игры вначале и потом у каждой свой выбор компонентов и тд.?
я конечно не гуру и почти ничего в этом деле не знаю но чисто теоретически...что нельзя в установщике просто сделать две страницы компонентов?! На 1 танки на 2 корабли)) а путь где установлена игра у многих разный и по любому в начале установки каждый указывает путь к своей игре)))
-
Тогда копай функции, которые называются 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;
-
Ошибка возникает при деинсталляции?
да при деинсталляции, а так все работает и всё ставится,не работает только деинсталятор,
-
точно!!! спасибо помогло))
когда удаляю из сетапа Uninstallable=no или ( мало ли ) вместо no ставлю yes вот така штука происходит. к чему бы это? )))
-
Скин тут не при чём. У тебя попросту деинсталлятор отключён:
Uninstallable=no
точно!!! спасибо помогло))
-
Всё стандартное запоминается автоматически (если не отключены предназначенные для этого параметры в [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
мой установщик я скином сделал мож поэтому?
-
если не трудно подскажите как сделать так чтобы установщик запоминал папку и моды которые я уже один раз установил?
-
В теме есть это и обсуждалось....
знаю! просто не помню где же это точно было)) вот терь с начала читаю всё)))
-
елки палки!! никак не могу найти. ведь было же где то. подскажите как сделать в установщике две страницы с выбором [Components]. слишком много на одну страницу.
-
@ЛОМ, можно использовать скины и без ини-конфига.
'Код:'
#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;
И не стоит использовать скин в деинсталляторе - он там нафиг не нужен.
СПАСИБО!!! да просто интересно было почему не работает ( хотя для начинающих вроде меня для инсталлятора можно ведь пользовать?! )))) КАК только попробовал твой скрипт всё заработало!!! там который пример скрипта ваще не пашет! а с твоим только так!!! еще раз СПАСИБО!!! )))
-
Внутри стиля лежат.
я что то не вижу их)) или я не там смотрю)) но ни одного файла с расширением ini. ни в той что на фотке ни в других папках что на фотке нет)))
-
Антивирь мог скушать.
P.S. В ветке есть примеры использования других шаблонов с другой библиотекой под inno. И самое главное, как сказал Kotyarko_O, поставьте китайскую расширенную версию инно, иначе многие возможности многих скриптов у Вас по просту не будут работать.
китайская расширенная эта та что тут в начале форума выложена да? она то у меня и стоит))) а антивиря у меня давно нет))) просто как я понял сами скины в нём и не работают))
-
#define SKinIni "NormalBlack.ini"
В каждом стиле внутри свой "конфиг".
а где этот конфиг? даже в этом примере ( как видно по фотке что я выложил выше ) в этой папке нет файла с расширением .ini ? кроме того что он просто написан в конфиге.
-
кто нибудь может объяснить про скины? в скачанном "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;
-
народ подскажите если не трудно как в данном скрипте увеличить окно установщика ? ту картинку что появляется до открытия установщика могу сделать и больше и меньше а вот сам установщик в размерах ну никак не могу.
;#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;
-
Ну или короткий ответ выше :)
уж лучше всё это вместе))
-
флаг убери где стоит Flags: checkablealone и не будет ничего выбираться по умолчанию
вот смотри убрал со все флаг Flags: checkablealone но все равно не получается(((
-
Nowik1971 кинул)) это реально сделать?
-
Вот так будет
'Пример с твоими компонентами'
[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;
короче у меня чет не получается(( и по ходу я уже достал тебя видимо с такими детскими вопросами)))
-
Т.е. 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
-
Короче если выбираешь например шары для арты из PFMods Номер 1, то автоматом блокируется выбор похожего мода из Читмоды по отдельности номер 2, а сделано это для того чтобы пользователи модпака не ставили все подряд, а потом писали что не работает, так как эти моды по функциям похожи, а в остальном разные и конфликтуют, Ну, ты в общем понял.... и выше тебе так же картинку привели как иерархию сделать....
спасибо)) короче сделал во так , сойдет)) а не подскажите как сделать чтобы когда открываешь окно выбора компонентов по умолчанию галочки чтобы не стояли? а то у меня на некоторых стоят на некоторых нет(( понимаю что достаю вас но всё же)))
в скрипте вот так у меня записано
-
Nowik1971 вам правильно написал, используйте подуровни
ясно. а какие флаги использовать в данном варианте не подскажете? ))
[6.3.2.1, 10.07.16] Реанимировал конфиг от "Keho", разбираем!
in Ready-to-use XVM configurations
Posted
понял. значит именно с моей версией ХВМ он не работает. хотя странно вроде все хвм почто одинаковые в общей своей структуре. проверю скачав оф.версию. автор тока без обид. мне просто реально понравилось то что ты выложил но у меня не заработало потому и написал.