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

Собираем RuPack

Легенда
  1. Офлайн
  2. Админ
  3. 1664 сообщений
  4. Репутация: 0
  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. 404 сообщений
  4. Репутация: 0
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 2 отправлено 22:44, 25.04.2011
Геннадий Спасибо!!!!
Тут нахрапом не возьмёшь, прочитал три раза, что то уложилось, что то не допер.
Буду пробовать, иначе ничего не получится.


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

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


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


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


Ну вот заменил я файлы и всё на этом, нет скриптов, нет ничего, сижу курю, что делать дальше незнаю.
Как это всё собрать до кучи, обратно в инсталлятор.


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

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

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

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



------------------------------------------
Знаток
  1. Офлайн
  2. Команда сайта
  3. 404 сообщений
  4. Репутация: 0
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 5 отправлено 23:48, 25.04.2011
Спасибо Гена!!!
Я тебе на Facebook скину, за одно и с днюхой поздравлю.


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

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

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



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

Последний раз редактировал Stealthmax 03:46, 08.06.2013
 
Перейти
Найти

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

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

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

  1. SplitView 2018 RUS
    Автор: LinXP Вчера, 22:17
  2. Debut Video Capture Pro 5.00 Rus
    Автор: 78Sergey Вчера, 21:53
  3. Поговорим?
    Автор: LinXP Вчера, 20:31
  4. Задавайте вопросы по русификации и мы...
    Автор: 007 Вчера, 19:03
  5. TurboMosaic 3.0.4 Professional...
    Автор: troa Вчера, 11:26
  6. Sisulizer Enterprise Edition v3.0
    Автор: LinXP 00:13, 13.01.2018

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

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