(04-08-2018 19:05:10 отредактировано WYLEK) 0

Тема: РуПаки и установщики

РуПаки и установщики

Поделюсь своими наработками для Inno Setup. И хотя я и половины не знаю для работы с этой программой, но кое-что все таки умею. Представляю скрип для установки русификатора. Он собран на двух скриптах от китайского товарища restools. Это интересные эффекты заставки, музыки и капель воды на картинке. Скрипт подойдет для любых русификаторов, закинуть файлы можно в любую директорию. В папку {app} вставьте свои файлы и пропишите вручную в скрипте пути.
Для наглядности я в архив вставил все файлы присутствующие в скрипте, так что запускайте и собирайте установщик сразу. И самое главное, вам нужно установить вот эту весчь - ISPack_5.3.9_Full_Unicode_FULL+Plugs-I-S. Что там находится…

Inno Setup 5.3.9 - Компиллятор.
ISSJoiner v12 - Соединение двух скриптов .ISS. Выделение,ПКМ - Join scripts.
ISUnpacker Explorer 1.6.9 - Распаковка инсталляторов. ПКМ - Открыть в ISUnpacker
ISSkin Builder v13.0 - Создание скинов Inno Setup.
ISTool 5.3.0.1 - Инструменты для создания установочных скриптов Inno Setup.
IS Form Desiner v5.1.8 - Создание страниц инсталлятора.
Converter REG2ISS 0.0.14 (by Serega) - Конвертирование файлов реестре .REG в .ISS ПКМ на .REG файлах
Inno Setup Scripting v5.1 - Справочное пособие по Inno Setup.
Inno Setup HELP & FAQ - Сборник Хелпов и инструкций по Inno Setup.
Inno Setup Example Scripts - Примеры скриптов Inno Setup.
Restools Plugins - 16 Плагинов Restools.

сам скрипт с пояснениями, он есть в архиве

; для форума

; www.wylek.ru

[Setup]AppName=ALPlayer

; это имя приложения и папка

AppVerName=русификатор для ALPlayer 2.0.4

; это версия приложения

DefaultDirName={pf}ESTsoft

; это каталог приложения - {pf} это Program Files, путь - (DefaultDirName)Program FilesESTsoft(AppName)ALPlayer

OutputBaseFilename=ALPlayer20_RU

; имя выходного файла

Compression=lzma

LicenseFile=embeddedLicense.rtf

VersionInfoVersion=2.0.4

VersionInfoCompany=WYLEK

WizardSmallImageFile=embedded modern-header.bmp

SetupIconFile=embedded104.ico

; значок установщика

[Files]Source: embeddedlogo.bmp; Flags: dontcopy

; начальная заставка:

Source: embeddedlogo.wav; Flags: dontcopy

; музон

Source: embeddedWizModernImage-Is.bmp; Flags: dontcopy

; картинка слева:

Source: filtersInnoCallback.dll; DestDir: {tmp}; Flags: dontcopy

Source: filterscallnsis.dll; Flags: dontcopy

Source: filtersAdvSplash.dll; Flags: dontcopy

Source: filterswaterctrl.dll; Flags: dontcopy

; эффекты

Source: {app}English.dll; DestDir: {app}language; Flags: ignoreversion

; файл приложения, второй {app} это переменная каталога

Source: {app}DefSkin.ask; DestDir: {app}skinsEnglish; Flags: ignoreversion

; если второй {app} заменить на {commonprogramfiles}, то файл DefSkin.ask полетит в C: Program FilesCommon FilesskinsEnglish

[INI]Filename: {app}wylek.ru.url; Section: InternetShortcut; Key: URL; String: http://www.wylek.ru

; это установится линк на наш сайт

; это коды, тут лазить вообще не надо...

[Code]type

   TTimerProc = procedure(h:longword; msg:longword; idevent:longword; dwTime:longword);

   // »ШµчєЇКэІОКэёсКЅЙщГч

function WrapTimerProc(callback:TTimerProc; paramcount:integer):longword;

      external 'wrapcallback@files:innocallback.dll stdcall';

// К№УГ»ШµчєЇКэµДЦчТЄИлїЪЧЄ»»єЇКэ.

function SetTimer(hWnd: longword; nIDEvent, uElapse: longword; lpTimerFunc: longword): longword;

      external 'SetTimer@user32.dll stdcall';

// WinAPI єЇКэ, К±јдС­»·єЇКэ, ХвёцєЇКэРиТЄ»ШµчєЇКэ, ·сФтІ»ДЬКµПЦ№¦ДЬ

function enablewater(ParentWnd: HWND; Left, Top: integer; Bmp: HBITMAP;

      WaterRadius, WaterHeight: integer): BOOL; external 'enablewater@files:waterctrl.dll stdcall';

//ParentWnd     ·ЕЦГМШР§ґ°їЪµДёёґ°їЪѕд±ъЎЈ

//Left          ЧуО»ЦГ

//Top           ЙПО»ЦГ

//Bmp           О»Нјѕд±ъЎЈ

//WaterRadius   Л®ОЖ°лѕ¶Ј¬»бБоµЅЛ®ОЖїґЖрАґ·¶О§ёь№гЎЈ

//WaterHeight   Л®ОЖёЯ¶ИЈ¬»бБоµЅЛ®ОЖїґЖрАґёьЙоЎЈ

//ЧўТвЈ¬Л®ОЖІејюЧФ¶ЇёщѕЭНјЖ¬АґЙи¶ЁёЯ¶ИєНїн¶ИЈ¬

//БнНвЛ®ОЖµЧНј±ШРлКЗ·­ЧЄµДНјЖ¬Ј¬ПФКѕµДК±єт»б·­ЧЄНјЖ¬АґПФКѕЎЈ

function waterblob(x, y: integer; radius, height: integer): BOOL; external 'waterblob@files:waterctrl.dll stdcall';

// ФЪ x,y µгІъЙъ°лѕ¶ОЄradius, ёЯ¶ИОЄheight µДЛ®ОЖЎЈ

function flattenwater(): BOOL; external 'flattenwater@files:waterctrl.dll stdcall';

// ЖЅ·ьЛщУРЛ®ОЖЎЈ

function disablewater(): BOOL; external 'disablewater@files:waterctrl.dll stdcall';

//КН·ЕЛ®ОЖІејю

function setwaterparent(ParentWnd: HWND): BOOL; external 'setwaterparent@files:waterctrl.dll stdcall';

//v2 РВФцЈ¬ЙиЦГЛ®ОЖІејюµДёёѕд±ъ

var

   bmp: TBitmap;

procedure mytimerproc(h:longword; msg:longword; idevent:longword; dwTime:longword);

begin

   waterblob(random(162), random(289), random(5), random(200));  // Лж»ъІъЙъРЎЛ®ОЖ

end;

procedure InitializeWizard1();

var

   timercallback: longword;

begin

   ExtractTemporaryFile('WizModernImage-Is.bmp');

   bmp := TBitmap.create;

   bmp.LoadFromFile(ExpandConstant('{tmp}WizModernImage-Is.bmp'));

   enablewater(WizardForm.WelcomePage.Handle, 0, 0, bmp.Handle, 3, 50);

   timercallback := WrapTimerProc(@mytimerproc,4); // ЧЄ»» Inno Setup µДєЇКэИлїЪ

   settimer(0, 0, 200, timercallback);  // КµПЦ Timer µДС­»·ЦШёґµчУГєЇКэР§№ы

end;

procedure CurPageChanged1(CurPageID: Integer);

begin

   if CurPageID = wpWelcome then

   begin

     setwaterparent(WizardForm.WelcomePage.Handle);

//    waterblob(70, 198, 10, 1000);

   end else

   if CurPageID = wpFinished then

   begin

     setwaterparent(WizardForm.FinishedPage.Handle);

//    waterblob(70, 198, 10, 1000);

   end else

     flattenwater();

end;

procedure DeinitializeSetup1();

begin

   disablewater();

   bmp.Free;

end;

function callplug(parentwnd: Integer; pluginname,funcname,param1,param2,param3,param4,param5,param6,param7,param8,param9,param10: PAnsiChar): Integer;

external 'callplug@files:callnsis.dll stdcall';

procedure InitializeWizard2();

var

   val: Integer;

begin

   ExtractTemporaryFile('AdvSplash.dll');

   ExtractTemporaryFile('logo.bmp');

   ExtractTemporaryFile('logo.wav');

   val:=callplug(0,ExpandConstant('{tmp}AdvSplash.dll'),'show','2800','1400','1200','-1',ExpandConstant('{tmp}logo'),'','','','','');

   // ФЪ NSIS µДАэЧУЦРµчУГКЗИзПВµДЈє

   // SetOutPath $TEMP                    # ЙиЦГКдіцО»ЦГОЄБЩК±ДїВј

   // File /oname=logo.bmp my_splash.bmp           # КН·ЕОДјю

   // File /oname=logo.wav my_splashshit.wav       # КН·ЕОДјю

   // advsplash::show 2800 1400 1200 -1 $TEMPspltmp # µчУГІејю

   // Pop $0                    # ИЎ·µ»ШЦµЈє ·µ»Ш '1' ±нКѕУГ»§МбЗ°№Ш±ХЙБЖБ, ·µ»Ш '0' ±нКѕЙБЖБХэіЈЅбКш, ·µ»Ш '-1' ±нКѕЙБЖБПФКѕіцґн

   // »щ±ѕЙПЈ¬µчУГµД·Ѕ·Ё¶јКЗТ»СщµДЈ¬ЛщТФЦ»ТЄЙФЙФїґїґ NSIS µДІејюАэЧУЈ¬ДгѕНїЙТФФЪ INNO ЦРАыУГТФЙП·Ѕ·ЁЅшРРµчУГ

   if val = 1 then

     MsgBox('Дгµг»чБЛЙБЖБґ°їЪЈ¬µјЦВЙБЖБМбЗ°№Ш±ХЈЎ', mbConfirmation, MB_OK);

end;

procedure InitializeWizard();

begin

   InitializeWizard1();

   InitializeWizard2();

end;

procedure CurPageChanged(CurPageID: Integer);

begin

   CurPageChanged1(CurPageID);

end;

procedure DeinitializeSetup();

begin

   DeinitializeSetup1();

end;

[CustomMessages]Russian.NameAndVersion=%1, версия %2

Russian.AdditionalIcons=Дополнительные значки:

Russian.CreateDesktopIcon=Создать значок на Рабочем столе

Russian.CreateQuickLaunchIcon=Создать значок в Панели быстрого запуска

Russian.ProgramOnTheWeb=Сайт %1 в Интернете

Russian.UninstallProgram=Деинсталлировать %1

Russian.LaunchProgram=Запустить %1

Russian.AssocFileExtension=Связать %1 с файлами, имеющими расширение %2

Russian.AssocingFileExtension=Связывание %1 с файлами %2...

[Languages]; These files are stubs

; To achieve better results after recompilation, use the real language files

Name: Russian; MessagesFile: compiler:LanguagesRussian.isl

[Messages]BeveledLabel=Перевод WYLEK

Вот этой программой будете все скрипты переделывать по своему желанию – ISTool, и собирать ей тоже. Для начала, я думаю, хватит. Обсуждаем и не стесняемся все вместе. Все знают только идиоты или гении, а мы нормальные люди и должны учиться друг у друга.

Качаем все вместе…

http://rghost.ru/5222537

РуПаки и установщики

Рейтинг поста: 0

Re: РуПаки и установщики

Я никогда с InnoSetup не работал (чуть-чуть с NSIS).
Вопрос: он позволяет создавать патчи (наподобии с программой PatchWise Free)?  И еще вопрос по приведенному коду: у меня в браузере некоторые его строки, которые начинаются на //, отображается в таком виде: Л®ОЖ°лѕ¶Ј¬»бБоµЅЛ®ОЖїґЖрАґ·¶О§ёь№гЎЈ
Это так и должно быть или это у меня проблемы?  И меня просьба: делать все текстовые файлы (*.txt) в кодировке UTF-8, названия файлов давать латиницей. У меня система немецкая и с кириллицей не дружит. Но, если этого нельзя сделать, по каким-либо причинам, то буду тогда сам решать эти небольшие неувязочки. РуПаки и установщики Проблем, как говорится, нет.

Кто ищет, тот всегда найдет!
РуПаки и установщики

Рейтинг поста: 0

(04-08-2018 19:06:15 отредактировано WYLEK)

Re: РуПаки и установщики

у меня в браузере некоторые его строки, которые начинаются на //, отображается в таком виде: Л®ОЖ°лѕ¶Ј¬»бБоµЅЛ®ОЖїґЖрАґ·¶О§ёь№гЎЈ

Это китайский язык, а кавычки в коде это команда конца кода и можно описание за ними делать. Вот создатель кода и написал....только на своем языке  РуПаки и установщики

И меня просьба: делать все текстовые файлы (*.txt) в кодировке UTF-8, названия файлов давать латиницей.

Но это само собой. Так в моем примере нет русских имен. А файл wylek.iss открывать нужно прогой ISTool

РуПаки и установщики

Рейтинг поста: 0

(04-08-2018 19:06:47 отредактировано WYLEK)

Re: РуПаки и установщики

Так в моем примере нет русских имен.

Да, нету. Но вот архив назван по русски - форум.rar. Ну ничего страшного, все в порядке. РуПаки и установщики

Кто ищет, тот всегда найдет!
РуПаки и установщики

Рейтинг поста: 0

Re: РуПаки и установщики

Я тут по InnoSetup чуть порыл. Можно и им делать патчи. Прикручивается к нему DLL, называется VPatch. Только в отличии от PatchWise все ручками писать надо РуПаки и установщики .

Кто ищет, тот всегда найдет!
РуПаки и установщики

Рейтинг поста: 0

(04-08-2018 19:07:17 отредактировано WYLEK)

Re: РуПаки и установщики

Я тут по InnoSetup чуть порыл. Можно и им делать патчи. Прикручивается к нему DLL, называется VPatch. Только в отличии от PatchWise все ручками писать надо

Да видел я это, и переделанные на русский язык скрипты(описание) есть у меня. Но живых примеров ноль...
Видать не ахти как работает.

РуПаки и установщики

Рейтинг поста: 0

Re: РуПаки и установщики

Геннадий такой вопрос.
Я распаковал экзешник UniExtract, появилось куево множество папок, я заменил в папках нужные мне файлы, чем и главное как, всё это пиршество собрать назад в инсталлятор?

Храни меня Господь от тех, кому я верю. Кому не верю - тех остерегусь я сам.
РуПаки и установщики

Рейтинг поста: 0

(04-08-2018 19:07:43 отредактировано WYLEK)

Re: РуПаки и установщики

Геннадий такой вопрос.
Я распаковал экзешник UniExtract, появилось куево множество папок, я заменил в папках нужные мне файлы, чем и главное как, всё это пиршество собрать назад в инсталлятор?

Вот как раз сейчас заливаю картинки с мануала по RuPack-у
Практически все они одинаково настраиваются,

РуПаки и установщики

Рейтинг поста: 0

Re: РуПаки и установщики

Ждёмс!!!

Храни меня Господь от тех, кому я верю. Кому не верю - тех остерегусь я сам.
РуПаки и установщики

Рейтинг поста: 0

(04-08-2018 19:08:57 отредактировано WYLEK)

Re: РуПаки и установщики

Я тут по InnoSetup чуть порыл. Можно и им делать патчи. Прикручивается к нему DLL, называется VPatch. Только в отличии от PatchWise все ручками писать надо


  Вообщим, РуПаки и установщики победил я патч на InnoSetup!!!
На примере проги Gold Burn я методом тыка (инфы ноль в сети) и перевода с китайского РуПаки и установщики и сборка патча на NSIS РуПаки и установщики собрал рабочий скрипт и все прибамбасы! А главное - я понял что и как делать...Все пропатчилось, и бэкап есть, только один минус - нет сообщений о работе патча РуПаки и установщики . Чтобы узнать произошло пропатчивание или нет, надо запустить файл, но главного екзешника если не найдет, орет благим матом РуПаки и установщики

РуПаки и установщики

Рейтинг поста: 0

Re: РуПаки и установщики

Пожалуйста перезалейте файл) И хотел спросить, как можно осуществить в инстолляторе автоматическое регистрировании программы ну на примере AutoPlay Media Studio?

Рейтинг поста: 0

(04-08-2018 19:09:33 отредактировано WYLEK)

Re: РуПаки и установщики

как можно осуществить в инстолляторе автоматическое регистрировании программы ну на примере AutoPlay Media Studio?

Вот так...

[Files]Source: SisDirPTxSCP.ocx; DestDir: {sys}; Flags: regserver

и библиотека PTxSCP.ocx

РуПаки и установщики

Рейтинг поста: 0

(04-08-2018 19:10:01 отредактировано WYLEK)

Re: РуПаки и установщики

Вот так...


У каждой программы свой способ регистрации в системе. одни с помощью служебных библиотек, другие - ini-файлов, основная масса - через реестр. на примере - этого не покажешь. Идеальный вариант - берешь виртуальную машину, ставишь начисто систему, и с помощью, например, регшота, делаешь слепок состояний системы до и после установки программы. после чего этот слепок анализируешь и экспериментируешь с регистрацией проги в системе на базе этого слепка. На чистой системе, поскольку пачка работающих программ вносят свои изменения в систему непрерывно, и легко можно упереться влево.

Рейтинг поста: 0

Re: РуПаки и установщики

WYLEK, Можно поподробнее что за библеотека и где её можно скачать?

Рейтинг поста: 0

Re: РуПаки и установщики

Она является частью программы, и необходима именно для AutoPlay Media Studio. Устанавливаешь AutoPlay Media Studio и она будет в папке:
твой системный дискwindowssistem32

Рейтинг поста: 0