Войти
  1. ВКонтакте
  2. Facebook
  1. »
  2. »
  3. »
  4. РуПаки и установщики
Скрыть панель справаПоказать панель справа

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

Легенда
  1. Онлайн
  2. Админ
  3. 1606 сообщений
  4. Репутация: 2
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 1 отправлено 17:14, 17.04.2011
Поделюсь своими наработками для Inno Setup. И хотя я и половины не знаю для работы с этой программой, но кое-что все таки умею. Представляю скрип для установки русификатора. Он собран на двух скриптах от китайского товарища restools - http://restools.hanzify.org. Это интересные эффекты заставки, музыки и капель воды на картинке. Скрипт подойдет для любых русификаторов, закинуть файлы можно в любую директорию. В папку {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.

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

Code
; для форума
; www.wylek.ru

[Setup]
AppName=ALPlayer
; это имя приложения и папка
AppVerName=русификатор для ALPlayer 2.0.4
; это версия приложения
DefaultDirName={pf}\ESTsoft
; это каталог приложения - {pf} это Program Files, путь - (DefaultDirName)Program Files\ESTsoft\(AppName)ALPlayer
OutputBaseFilename=ALPlayer20_RU
; имя выходного файла
Compression=lzma
LicenseFile=embedded\License.rtf
VersionInfoVersion=2.0.4
VersionInfoCompany=WYLEK
WizardSmallImageFile=embedded \modern-header.bmp
SetupIconFile=embedded\104.ico
; значок установщика

[Files]
Source: embedded\logo.bmp; Flags: dontcopy
; начальная заставка:
Source: embedded\logo.wav; Flags: dontcopy
; музон
Source: embedded\WizModernImage-Is.bmp; Flags: dontcopy
; картинка слева:
Source: filters\InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy
Source: filters\callnsis.dll; Flags: dontcopy
Source: filters\AdvSplash.dll; Flags: dontcopy
Source: filters\waterctrl.dll; Flags: dontcopy
; эффекты
Source: {app}\English.dll; DestDir: {app}\language; Flags: ignoreversion
; файл приложения, второй {app} это переменная каталога
Source: {app}\DefSkin.ask; DestDir: {app}\skins\English; Flags: ignoreversion
; если второй {app} заменить на {commonprogramfiles}, то файл DefSkin.ask полетит в C: \Program Files\Common Files\skins\English

[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 $TEMP\spltmp # µчУГІејю
   // 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:Languages\Russian.isl

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

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

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

http://rghost.ru/5222537

Мастер
  1. Офлайн
  2. Команда сайта.
  3. 892 сообщений
  4. Репутация: 9
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 2 отправлено 21:12, 17.04.2011
Я никогда с InnoSetup не работал (чуть-чуть с NSIS).
Вопрос: он позволяет создавать патчи (наподобии с программой PatchWise Free)?

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

И меня просьба: делать все текстовые файлы (*.txt) в кодировке UTF-8, названия файлов давать латиницей. У меня система немецкая и с кириллицей не дружит. Но, если этого нельзя сделать, по каким-либо причинам, то буду тогда сам решать эти небольшие неувязочки. smile Проблем, как говорится, нет.



------------------------------------------
Кто ищет, тот всегда найдет!
Легенда
  1. Онлайн
  2. Админ
  3. 1606 сообщений
  4. Репутация: 2
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 3 отправлено 21:35, 17.04.2011
Quote (Leserg)
Вопрос: он позволяет создавать патчи (наподобии с программой PatchWise Free)?

Нет, это установщик. PatchWise Free хорош для больших по размеру файлов, да и на него каспер лается постоянно.
Я думаю что 5 или 6 метров это не велик размер нынче. Хотя я им часто пользуюсь.

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

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

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

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

Мастер
  1. Офлайн
  2. Команда сайта.
  3. 892 сообщений
  4. Репутация: 9
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 4 отправлено 22:30, 17.04.2011
Quote (WYLEK)
Так в моем примере нет русских имен.

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


------------------------------------------
Кто ищет, тот всегда найдет!
Мастер
  1. Офлайн
  2. Команда сайта.
  3. 892 сообщений
  4. Репутация: 9
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 5 отправлено 01:05, 19.04.2011
Я тут по InnoSetup чуть порыл. Можно и им делать патчи. Прикручивается к нему DLL, называется VPatch. Только в отличии от PatchWise все ручками писать надо sad .


------------------------------------------
Кто ищет, тот всегда найдет!
Легенда
  1. Онлайн
  2. Админ
  3. 1606 сообщений
  4. Репутация: 2
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 6 отправлено 08:59, 19.04.2011
Quote (Leserg)
Я тут по InnoSetup чуть порыл. Можно и им делать патчи. Прикручивается к нему DLL, называется VPatch. Только в отличии от PatchWise все ручками писать надо

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

Знаток
  1. Офлайн
  2. Команда сайта
  3. 405 сообщений
  4. Репутация: 0
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 7 отправлено 12:35, 25.04.2011
Геннадий такой вопрос.
Я распаковал экзешник UniExtract, появилось куево множество папок, я заменил в папках нужные мне файлы, чем и главное как, всё это пиршество собрать назад в инсталлятор?

Последний раз редактировал WYLEK 23:23, 20.03.2017
Легенда
  1. Онлайн
  2. Админ
  3. 1606 сообщений
  4. Репутация: 2
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 8 отправлено 14:02, 25.04.2011
Quote (Stalevar)
Геннадий такой вопрос.
Я распаковал экзешник UniExtract, появилось куево множество папок, я заменил в папках нужные мне файлы, чем и главное как, всё это пиршество собрать назад в инсталлятор?

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

Знаток
  1. Офлайн
  2. Команда сайта
  3. 405 сообщений
  4. Репутация: 0
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 9 отправлено 14:08, 25.04.2011
Ждёмс!!!
Легенда
  1. Онлайн
  2. Админ
  3. 1606 сообщений
  4. Репутация: 2
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 10 отправлено 16:02, 22.05.2011
Quote (Leserg)
Я тут по InnoSetup чуть порыл. Можно и им делать патчи. Прикручивается к нему DLL, называется VPatch. Только в отличии от PatchWise все ручками писать надо

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

Прибывший
  1. Офлайн
  2. Участники
  3. 2 сообщений
  4. Репутация: 0
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 11 отправлено 18:24, 16.01.2012
Пожалуйста перезалейте файл) И хотел спросить, как можно осуществить в инстолляторе автоматическое регистрировании программы ну на примере AutoPlay Media Studio?
Легенда
  1. Онлайн
  2. Админ
  3. 1606 сообщений
  4. Репутация: 2
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 12 отправлено 19:35, 17.01.2012
Quote (Alexander2012)
как можно осуществить в инстолляторе автоматическое регистрировании программы ну на примере AutoPlay Media Studio?


Вот так...

[Files]

Source: SisDir\PTxSCP.ocx; DestDir: {sys}; Flags: regserver


и библиотека PTxSCP.ocx
Сталкер
  1. Офлайн
  2. Журналисты
  3. 100 сообщений
  4. Репутация: 0
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 13 отправлено 10:27, 18.01.2012
Quote (Alexander2012)
как можно осуществить в инстолляторе автоматическое регистрировании программы

Quote (WYLEK)
Вот так...

У каждой программы свой способ регистрации в системе. одни с помощью служебных библиотек, другие - ini-файлов, основная масса - через реестр. на примере - этого не покажешь. Идеальный вариант - берешь виртуальную машину, ставишь начисто систему, и с помощью, например, регшота, делаешь слепок состояний системы до и после установки программы. после чего этот слепок анализируешь и экспериментируешь с регистрацией проги в системе на базе этого слепка. На чистой системе, поскольку пачка работающих программ вносят свои изменения в систему непрерывно, и легко можно упереться влево.
Прибывший
  1. Офлайн
  2. Участники
  3. 2 сообщений
  4. Репутация: 0
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 14 отправлено 20:32, 18.01.2012
WYLEK, Можно поподробнее что за библеотека и где её можно скачать?
Сталкер
  1. Офлайн
  2. Журналисты
  3. 100 сообщений
  4. Репутация: 0
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 15 отправлено 11:24, 19.01.2012
Она является частью программы, и необходима именно для AutoPlay Media Studio. Устанавливаешь AutoPlay Media Studio и она будет в папке:
твой системный диск\windows\sistem32
 
Перейти
Найти

Доступ закрыт.

  1. Вам запрещено отвечать в темах данного форума.

Последние темы

  1. Переведенная на русский язык справка...
    Автор: Ruvest 08:25, 17.08.2017
  2. Resource Tuner 2.10 [RU/EN]
    Автор: gazon01 00:04, 15.08.2017
  3. HWiNFO32\64
    Автор: Alecs962 17:18, 14.08.2017
  4. Поговорим?
    Автор: WYLEK 09:41, 14.08.2017
  5. Perfect Photo Suite
    Автор: Vitaly 19:25, 13.08.2017
  6. EaseUS Partition Master...
    Автор: WYLEK 17:59, 12.08.2017

Изменения статуса

  1. Никто не менял личный статус.