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

Собираем RuPack

Мастер
  1. Офлайн
  2. Админ
  3. 1593 сообщений
  4. Репутация: 1
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 1 отправлено 14:20, 25.04.2011
Пишу по просьбе Veikko мануал по созданию RuPack-а Photo-Brush 5

Что для этого надо:

ISPack_5.3.9_Full_Unicode_FULL+Plugs-I-S
Universal Extractor 1.6 или Inno Setup Unpacker v0.31

Ну, вроде все есть, начнем…

Правый клик по photobrush5.exe и выбираем программу для распаковки установщика

Здесь выбираем Выделить все и жмем кнопочку Извлечь
В Universal Extractor 1.6 ничего выбирать не надо, он сам все сделает.
Важно – в первом случае имя файла сценария на русском, во втором на енг.

Теперь у нас есть файлы сценария и файлы для установки. Для украшательства установщикаскачайте здесь с новой заставкой. Я опишу два метода с эффектами, но все по порядку. Запустите файл сценария. Его нужно перед компиляцией полечить. Будем работать с именем сценария install_script.iss. После копирования будет такой вид файлов.

Делаем правый клик и выбираем Open with ISTool. Теперь начинаем искать ошибки.
Для этого жмите кнопку Компиляции

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

Это сжатие не поддерживается в Inno Setup, Нажмите кнопку Options и выберите нужное сжатие.

Теперь запускаете опять компиляцию. И о чудо! Сборка произошла без ошибок и установщик готов! Но еще рано радоваться. Надо еще пошевелить ручками.
Параметр OutputBaseFilename=photobrush5 – это выходное имя установщика, меняем как надо, например - OutputBaseFilename= Photo-Brush_5.30_RuPack by Viekko.
Параметр LicenseFile=embedded\License.txt меняем на LicenseFile=embedded\License. rtf, тогда ваша лицензия будет в цвете. Теперь полечим запуск программы, это надо для того, чтобы не запускался без спроса пользователя. Нажмите кнопку Выполнить слева

Теперь двойной клик по {app}\PhotoBrush.exe или правый клик и выбрать Свойства
Поставьте галки в чекбоксы как на скрине. Эти параметры надо ставить в любых собираемых программах. Да, везде есть контекстное меню. Наведите на чекбокс и читайте.

Теперь остались Сообщения и Язык. Так как во всех программах они одинаковые, просто скопируйте внизу и вставьте в свой сценарий

Code
[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=Мой RuPack, никому не отдам...

Будет вот так у вас в сценарии. Внизу, я думаю, знаете что писать.

Для этой программы нужно еще внести изменения в реестр. Можно конечно просто сбросить его, но зачем огород городить…
Нажмите слева функцию Реестр по чистому полю правый клик. Выберите функцию Импортировать из файла. Файл реестра в наличии - photobrush5.reg. После внесения данных в реестр сохраните проект.

Запускайте компиляцию и можете насладиться своей работой! Я думаю, что вы не забыли поменять енг файлы на рус? Если забыли, то сделайте это! Теперь у вас рабочий сценарий, но давайте украсим установку. Вот это вставьте в разрыв между [Files] и [Registry]

Code
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
; эффекты

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

Вот как на скрине. Раздел [INI] вставляем как тайный агент рекламы. После установки в папке с программой будет линк на наш сайт.

Дальше, слева войдите в Код и вставьте это

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';
function enablewater(ParentWnd: HWND; Left, Top: integer; Bmp: HBITMAP;
        WaterRadius, WaterHeight: integer): BOOL; external 'enablewater@files:waterctrl.dll stdcall';
function waterblob(x, y: integer; radius, height: integer): BOOL; external 'waterblob@files:waterctrl.dll stdcall';
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';

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);
     settimer(0, 0, 200, timercallback);
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'),'','','','','');
end;

procedure InitializeWizard();
begin
     InitializeWizard1();
     InitializeWizard2();
end;

procedure CurPageChanged(CurPageID: Integer);
begin
     CurPageChanged1(CurPageID);
end;

procedure DeinitializeSetup();
begin
     DeinitializeSetup1();
end;

Жмите кнопку Сохранить скрипт и закройте его. Кнопка вверху слева. Зайдите в папку embedded и сделайте себе лицензию – файл License.rtf и графику. Прикол, но скрин должен выглядеть вот так

Всё!!! Теперь запускайте сценарий и делайте компиляцию. Готовый установщик будет в папке Output

При запуске будет выведена заставка и звук. Теперь второй эффект. Мы сделаем название нашей команды шапкой на окне установщика. Будет вот так.

Для этого небольшие переделки. Вставьте как на скрине эту запись - #include "fairy.iss"

Вот это вставьте в разрыв между [Files] и [Registry] – прежнее удалите

Code
Source: embedded\wylek.png; Flags: dontcopy

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

Нажмите слева функцию Код и удалите оттуда все. Скопируйте ниже код и вставьте туда.

Code
function GetSysColor(nIndex: Integer): DWORD; external 'GetSysColor@user32.dll stdcall';

var
     GifFrameCount: Integer;

function ColorToRGB(Color: TColor): Longint;
begin
     if Color < 0 then
       Result := GetSysColor(Color and $000000FF)
     else
       Result := Color;
end;

procedure PlayListCallback(LastImgIndex: Integer);
begin
//  ShowFairyEx(0);
     AnimateFairy('(0-'+IntToStr(LastImgIndex)+')', nil);
end;

procedure InitializeWizard();
var
     Btn: TNewButton;
     ImgFile: AnsiString;
     S: AnsiString;
     x, y: Integer;
     BAlpha, TransparentColor: Integer;
begin
     InitFairy(WizardForm.Handle, 0, 30);
     ImgFile := 'wylek.png';
     ExtractTemporaryFile(ImgFile);
     x := (WizardForm.Width - 350) div 2; // Расположение изображения (горизонталь [X]). По умолчанию 275.
     y := -96;                            // Расположение изображения (Вертикаль [Y]). По умолчанию -96.
     BAlpha := 255;                       // Прозрачность изображения. По умолчанию 255.
     TransparentColor := ColorToRGB(clWhite);
     S := S + IntToStr(x) + '|' + IntToStr(y) + '|' + IntToStr(BAlpha) + '|' + IntToStr(TransparentColor) + '|' + ExpandConstant('{tmp}\'+ImgFile);
     AddImgsToList(S, @PlayListCallback);
end;

procedure DeinitializeSetup();
begin
     HideFairy;
     WizardForm.Hide;
     UninitFairy;
end;

Запускайте компиляцию и наслаждайтесь своей работой!

Знаток
  1. Офлайн
  2. Команда сайта
  3. 409 сообщений
  4. Репутация: 0
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 2 отправлено 22:44, 25.04.2011
Геннадий Спасибо!!!!
Тут нахрапом не возьмёшь, прочитал три раза, что то уложилось, что то не допер.
Буду пробовать, иначе ничего не получится.
Знаток
  1. Офлайн
  2. Команда сайта
  3. 409 сообщений
  4. Репутация: 0
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 3 отправлено 23:30, 25.04.2011
Inno Setup Unpacker у меня не распаковал, говорит мол не тот экзешник. Universal Extractor распаковал и выдал следующую картину.


И ни одного скрипта установки. Захожу в папку data, там ещё папки


Захожу в папку OFFLINE вижу море папок и только тут нахожу нужные мне файлы для замены, но каждый файл идёт в отдельной паке, к чему бы это? А мне нужно вкинуть вместо одного в папке 34, как быть или это не влияет?


Ну вот заменил я файлы и всё на этом, нет скриптов, нет ничего, сижу курю, что делать дальше незнаю.
Как это всё собрать до кучи, обратно в инсталлятор.
Мастер
  1. Офлайн
  2. Админ
  3. 1593 сообщений
  4. Репутация: 1
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 4 отправлено 23:41, 25.04.2011
Quote (Stalevar)
Ну вот заменил я файлы и всё на этом, нет скриптов, нет ничего, сижу курю, что делать дальше незнаю.

Кинь линк в личку

я гляну что к чему

Знаток
  1. Офлайн
  2. Команда сайта
  3. 409 сообщений
  4. Репутация: 0
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 5 отправлено 23:48, 25.04.2011
Спасибо Гена!!!
Я тебе на Facebook скину, за одно и с днюхой поздравлю.
Сталкер
  1. Офлайн
  2. Друзья
  3. 94 сообщений
  4. Репутация: 0
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 6 отправлено 05:15, 26.04.2011
WYLEK, с каждым днем все интереснее surprised будем изучать happy
Мастер
  1. Офлайн
  2. Админ
  3. 1593 сообщений
  4. Репутация: 1
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 7 отправлено 12:43, 26.04.2011
Quote (Stalevar)
Inno Setup Unpacker у меня не распаковал, говорит мол не тот экзешник. Universal Extractor распаковал и выдал следующую картину.

Я посмотрел, это не Inno Setup установщик.
здесь надо другой подход. Надо прогу для отслеживания реестра и папок.
Узнать куда закидает файлы и что в реестр.
Лучше сделать на такое русификатор.
Вечером посмотрю что до чего.

Новичок
  1. Офлайн
  2. Участники
  3. 27 сообщений
  4. Репутация: 0
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 8 отправлено 03:45, 08.06.2013
Inno Script Studio сразу ошибки подчеркивает, синтаксис вроде пашет норм. По сути неплохой продукт.

Последний раз редактировал Stealthmax 03:46, 08.06.2013
Сталкер
  1. Офлайн
  2. Знаток
  3. 139 сообщений
  4. Репутация: 0
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 9 отправлено 11:19, 19.07.2013
del

Последний раз редактировал Kopejkin 14:22, 17.11.2015
 
Перейти
Найти

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

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

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

  1. TotalD
    Автор: druc Вчера, 14:57
  2. Debut Video Capture Pro 4.04 Rus
    Автор: dinis124 12:22, 13.07.2017
  3. Abelssoft HappyCard 2017 1.2.146...
    Автор: dinis124 12:18, 13.07.2017
  4. Athentech Perfectly Clear Workbench...
    Автор: Ashoka 07:45, 13.07.2017
  5. DFX Audio Enhancer 12 RUS
    Автор: AlexSergeev 16:25, 09.07.2017
  6. QT приложения и методы их модификации
    Автор: bellic 12:28, 07.07.2017

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

  1. профиль Вопрос задать в теме для новичков не получается и Админу... Сегодня, 14:57
  2. профиль Не вернусь 18:24, 16.07.2017
  3. профиль Лучше быть бедным чем дешёвым. 17:18, 04.04.2017
  4. профиль Новичок 16:30, 10.02.2017
  5. профиль Офлайн 05:14, 11.12.2016