• Добро пожаловать на WYLEK.ru. Пожалуйста, войдите или зарегистрируйтесь.
 
119 гостей, 0 пользователей

avatar_WYLEK

Делаем патч в Inno как на PatchWise Free…

Автор WYLEK, 14 июня 2011, 22:55:38

« предыдущая - следующая »

WYLEKАвтор темы

Тема создана 14 июня 2011, 22:55:38 Последнее редактирование: 02 августа 2018, 22:05:13 от WYLEK
Делаем патч в Inno как на PatchWise Free...


От меня: я не создаю скрипты для Inno, я ими пользуюсь!

При создании установщика была поставлена задача в контейнер запхнуть три установщика. И чтобы они по очереди запускались. Извращения эти делались во благо конечного пользователя, потому что Photoshop(х86) и Photoshop(х64) устанавливается куда попало в разных выпусках. А для уменьшения размера надо было сделать патч в PatchWise Free. Я себе установил 64 битную версию оси, и каково же было у меня удивление, что PatchWise Free не понимает пути Program Files (x86)?! Но наработки рабочие уже были у меня, вдобавок прошерстил инет и собрал скрип для Inno. Что он может - патчить файлы как PatchWise Free, искать файл оригинала, проверять хеш-суммы файла и делать бэкап файлов!!! Инфа эта давняя, но общего рабочего скрипта и самой процедуры патчинга вы нигде не найдете - видать, червям лучше скормить свои знания, чем поделиться с народом. Я предоставляю на общее пользование полный комплект файлов для сборки установщика как PatchWise Free.

Поплакали, и хватит, теперь подробное описание сборки патча.

Чё надо:

Кролик - Можно свою локализованную программу
Полный пакет для патча -
Показать / Скрыть текст
качаем тут
[свернуть]
Пакет для этих целей - ISPack_5.3.9_Full_Unicode_FULL+Pls- I-S

Скачайте и распакуйте архив в корень диска С. Разложите файлы по папкам : в Modified Files вставьте переведенный файл а в Original Files конечно исходный файл (не переведенный). В моем примере установите программу ThemesCreator-v4.16.2.6_RuPack и скопируйте файл ThemesCreator.exe в папку Modified Files. В этой же директории в папке PatchWise.bak скопируйте файл ThemesCreator.exe в папку Original Files.

Показать / Скрыть текст
[свернуть]

Открываем файл WYLEK.bat - правый клик и выберите Изменить.
Сотрите лишнюю строку - здесь можно добавлять файлы, сколько вам надо.

Показать / Скрыть текст
[свернуть]

Зайдите в папку Modified Files и скопируйте полное имя файла - ThemesCreator.exe и вставьте как на картинке.

Показать / Скрыть текст
[свернуть]

Теперь сохраните изменения и запускайте батник на выполнение.

Показать / Скрыть текст
[свернуть]

Выскочит окошко с процедурой выполнения и создаст файл MyPatch.dat, расположенный в папке PatchSetup. И я Вас прошу - не меняйте расположение и названия папок!!!

Показать / Скрыть текст
[свернуть]

Зайдите в папку PatchSetup и откройте файл сценария Themes Creatorl.iss в Inno Setup Compiler.
Все что светится зеленым цветом это подсказка и на работу скрипта не влияет. Написано на русском и обязательно к прочтению перед изменением сценария!!!
Найдите это место и вставьте полное имя файла - ThemesCreator.exe вместо исходного. Вставлять надо аккуратно без лишних пробелов и символов!

Показать / Скрыть текст
[свернуть]

Теперь замените на этом месте также вместо исходного файла на ThemesCreator.exe.

Показать / Скрыть текст
[свернуть]

Сейчас у каждого виндоуса есть калькулятор подсчета хеша. Сделайте настройки как на скрине и вставьте MD5 исходного файла ThemesCreator.exe в строку выше.

Показать / Скрыть текст
[свернуть]

Еще поменяйте полное имя здесь на ThemesCreator.exe в самом конце сценария. Это процедура патча и бэкапа файла.
Сколько у вас файлов для патчинга, столько надо прописать этих процедур. У нас одна и больше писать ничего не надо.

Показать / Скрыть текст
[свернуть]

Вот для примера пропатчено три файла и количество процедур надо прописать три.

Показать / Скрыть текст
[свернуть]

Делайте сохранение скрипта, желательно под другим именем, и запускайте компилирование. Если ничего не натворили, то все будет удачно и установщик будет создан в папке Output. Заходите туда и запускайте на исполнение. Не забудьте перед запуском установщика в директории Sony EricssonThemes Creator заменить файл ThemesCreator.exe на исходный!!! Все должно установиться без проблем.

Теперь повторно запустите и вы должны будете увидеть такую картину.

Показать / Скрыть текст
[свернуть]

Я думаю, вы знаете, почему выскочило это предупреждение. Если нет, то вам поможет только Господь Бог. Кстати вы можете сделать эксперимент с папкой расположения. Тоже программа облает ваши руки. А тем парням кто русский язык не желает использовать, в директории программы создастся папка PatchBackup с исходным файлом. Нужно просто заменить в основной папке русифицированный и усЁ. Вот в принципе и вся процедура создания бэкапа - легко, просто и не принужденно...

Кстати патч созданный на эту программу в  PatchWise Free весит 9.67 мб
Патч созданный на эту программу в Inno Setup весит 1.18 мб

Вот такой прикол...

Leserg

Классный материал! Теперь для полной картины осталось еще сделать деинсталлятор русификатора (удаление файлов русификации и восстановление оригинальных файлов программы)
Также функцию деинсталляции может выполнять и сам установщик. Наверняка вы сталкивались с такими программами, когда она у вас уже установлена, но при запуске файла инсталляции Мастер показывает окно с выбором действий: 1) Восстановить установку, 2) Изменить установку, 3) Удалить программу.
Например, я такой прием опробовал в своем русификаторе для программы "QSetup". Правда для его создания использовал патчер "IndigoRose Visual Patch".
А вот подружиться с Inno, у меня пока не получается
Кто ищет, тот всегда найдет!

WYLEKАвтор темы

Ответ #2 : 15 июня 2011, 15:20:59 #2 Последнее редактирование: 03 августа 2018, 09:08:23 от WYLEK
Цитата: LesergТеперь для полной картины осталось еще сделать деинсталлятор русификатора (удаление файлов русификации и восстановление оригинальных файлов программы)
Сценарий есть такой. Правда здесь патчинг не проходит, а вот функции бэкапа и восстановления оригинальных файлов (любых расширений) после удаления русификатора работают на УРА! Вечером рабочий материал закину на сайт. Запрос на выбор действия тоже нет. Но зачем он нужен при удалении русификатора? Запустил удаление и все вернулось на круги своя...

Leserg

Ответ #3 : 15 июня 2011, 21:03:16 #3 Последнее редактирование: 03 августа 2018, 09:08:58 от WYLEK
Цитата: WYLEKЗапрос на выбор действия тоже нет. Но зачем он нужен при удалении русификатора?
Та то я для примера привел, чтоб вспомнили, а кто не знал, будет знать, что есть инсталляторы, которые выполняют действия деинсталлятора, плюс, попутно, могут выполнить переустановку приложения. Понятное дело, в наших русификаторах функция переустановки не нужна. Всего лишь два действия: установка и удаление.
Кто ищет, тот всегда найдет!

WYLEKАвтор темы

Ответ #4 : 15 июня 2011, 21:50:47 #4 Последнее редактирование: 03 августа 2018, 09:09:36 от WYLEK
Цитата: LesergТа то я для примера привел, чтоб вспомнили, а кто не знал, будет знать, что есть инсталляторы, которые выполняют действия деинсталлятора

 Послал тебе файлы.
 Может для других напишу мануальчик хотя там все понятно и так.
 Протестируй и напиши что и как.

Leserg

Ответ #5 : 16 июня 2011, 03:59:52 #5 Последнее редактирование: 03 августа 2018, 09:12:16 от WYLEK
Цитата: WYLEKПротестируй и напиши что и как.
Тестировал на виртуалке: Windows XP SP3
 --------------------------------------------------------
 Делал все с теми файлами, которые ты дал. Поставил программу образец. Открыл сценарий в Inno (Unicode) и скомпилировал инсталлятор.
Показать / Скрыть текст
Установка
 ------------
 Затем запустил его. Меня приветствовал Мастер и сообщил, что будет установлен русификатор. Нажал далее. Лицензия, а как без нее . Согласился и нажал далее. Выбор папки установки, путь показывает правильно, нажимаю далее. Опа! Что это? "Папка с таким именем уже существует. Продолжить или нет?" Рядового пользователя это сообщение может ввести в ступор. Мы ставим русификатор, и мастер установки не должен нам давать такое сообщение, а тупо работать с указанно папкой. И если, в указанной папке нет нужной программы для русификации или её версия не совпадает с версией русика, тогда и сообщить об этом. Поэтому считаю такой месседж неуместным. (Можно было бы сделать так, чтобы кнопка "Далее" была неактивной, до тех пор, пока не будет указан верный каталог установки.) Мастер завершил работу и сообщил, что можно пользоваться русиком . Ну, спасибо. Запустил - да, на русском. Хорошо.

 Удаление
 -------------
 Далее... В меню "ПУСК" ->> "Программы" ярлыка на удаление русика не нашел. Пришлось идти в "Панель управления" и открывать "Установка/Удаление программ". Запустил удаление русика.
 Первое сообщение: "Действительно ли я хочу это сделать?". Это стандартное сообщение при удалении любой программы. Нормально. Да, хочу.
 Второе сообщение: Мастер поблагодарил меня за использование русика. Зачем!? Считаю, что благодарить пользователя за русификатор надо при его установке. Ну это мелочи. Каждый может здесь делать по своему. ОК.
 Третье! сообщение: "Все измененные файлы были удалены с вашего компьютера. Теперь вы можете использовать программу на оригинальном языке." Иду в папку с установленной программой и вижу - еще никто ничего не удалял. В чем смысл этого сообщения? Об этом можно сообщить на финальной странице Мастера удаления. Нажимаю ОК.
 !?
 Четвертое!!!!! сообщение: "Программа русификации была полностью удалена с вашего компьютера." Я в ауте
 Но свое дело, деинсталлятор, в конце концов, сделал. Русификатор удалил. Программа вернулась в свой первоначальный вид.

 Замечания:
 --------------
 Мне не понравился интерактивный режим работы деинсталлятора. Он должен быть (это мое мнение) простым, лаконичным и без навязчивых сообщений. Две, три, ну максимум четыре странички. На первой приветствие и общие сведения. Потом информация, что будет сделано (на этом этапе можно сделать проверку, чтоб программа, для которой удаляется русик, была закрыта, если открыта, то закрыть её). Далее процесс удаления. Наконец финальная страница, типа все успешно, русик удален, пользуйтесь оригинальной программой, спасибо за внимание. Вот и все.

 Теперь по сценарию:
 ---------------------------
 1) Для картинки Wizard"а ты использовал изображение WizModernImage-Is.bmp размерами 500х1084 пкс, при этом размер файла равен 1,54 Мб! Зачем такой огромный размер картинки? Там же достаточно 164х314 пкс. Плюс, из-за этого на 1 Мб увеличился размер самого инсталлятора. Открой файл изображения в PaintNet, в меню "Изображение" выбери пункт "Изменить размер". В открывшемся окне сними галочку с параметра "Сохранять пропорции" и укажи "Ширина" = 164 пкс, в "Высота" = 314 пкс. Нажми "ОК" и сохрани получившееся изображение. В итоге размер файла получится всего лишь 150 кб.

 2) Я не понял, откуда берется деинсталлятор (может это ламерский вопрос - я не знаком с этим установщиком)? В сценарии есть строка:
 [UninstallRun]
 Filename: {app}INFO.exe; WorkingDir: {app}
[/color]
 Но в исходной папке {app} нет файла INFO.exe. Откуда он берется? После установки русика, в каталоге с программой, есть файл unins001.exe, а файла INFO.exe не наблюдается . Можно ли изменить внешний вид и алгоритм работы деинсталлятора?

 А впрочем, ладно. Это надо конкретно садится и разбираться с Inno. У меня пока на это времени нет. Эта не та программа, с которой сел и начал плодотворно трудится.

 Выводы:
 -----------
 С функцией удаления русификатора деинсталлятор справляется
 Но необходимо шлифовать алгоритм его работы и внешний вид, применительно к нашим творениям.
[свернуть]
Кто ищет, тот всегда найдет!

WYLEKАвтор темы

Ответ #6 : 16 июня 2011, 15:11:01 #6 Последнее редактирование: 02 августа 2018, 22:08:53 от WYLEK
Цитата: Lesergи нажал далее. Выбор папки установки, путь показывает правильно

Для выбора пути справа находится кнопка Обзор

Цитата: LesergДалее... В меню "ПУСК" ->> "Программы" ярлыка на удаление русика не нашел.

В настройках ISTool выстави так.

Показать / Скрыть текст
[свернуть]

Вот и ярлычки нарисовались  :ura:

Для создания ярлыков есть раздел слева  :biggrin:  зайди и создай ярлыки.

Показать / Скрыть текст
[свернуть]


Цитата: Leserg1) Для картинки Wizard"а ты использовал изображение WizModernImage-Is.bmp размерами 500х1084 пкс, при этом размер файла равен 1,54 Мб! Зачем такой огромный размер картинки? Там же достаточно 164х314 пкс. Плюс, из-за этого на 1 Мб увеличился размер самого инсталлятора. Открой файл изображения в PaintNet, в меню "Изображение" выбери пункт "Изменить размер". В открывшемся окне сними галочку с параметра "Сохранять пропорции" и укажи "Ширина" = 164 пкс, в "Высота" = 314 пкс. Нажми "ОК" и сохрани получившееся изображение. В итоге размер файла получится всего лишь 150 кб.

Отвечаю твоими словами :biggrin:

Открой файл изображения в PaintNet, в меню "Изображение" выбери пункт "Изменить размер". В открывшемся окне сними галочку с параметра "Сохранять пропорции" и укажи "Ширина" = 164 пкс, в "Высота" = 314 пкс. Нажми "ОК" и сохрани получившееся изображение. В итоге размер файла получится всего лишь 150 кб. :chao:

И напоследок вот тебе готовый кусок скрипта - замени вот это у себя. Будут и значки и сообщения лишние исчезнут.


[Setup]
AppName=Русификатор к My Program
AppVerName=My Program_RUS 1.5
DefaultDirName={pf}My Program
AppVersion=My Program_RUS
OutputBaseFilename=My Program_RU
Compression=bzip
LicenseFile=embeddedLicense.rtf
WizardImageFile=embeddedWizModernImage-Is.bmp
WizardSmallImageFile=embedde    dWizardSmallImage.bmp
SetupIconFile=embeddedWXICON.ico
DirExistsWarning=no
DefaultGroupName=My Program
AllowNoIcons=true
[Files]
Source: {app}MyProg_RUS.exe; DestDir: {app}; DestName: MyProg.exe; Flags: ignoreversion recursesubdirs; BeforeInstall: CreateBackup
Source: {app}R_RUS.txt; DestDir: {app}; DestName: R.txt; Flags: recursesubdirs ignoreversion; BeforeInstall: CreateBackup
[Run]
Filename: {app}MyProg.exe; Description: Запустить русскую версию; Flags: waituntilidle postinstall
[Icons]
Name: {group}My Program; Filename: {app}MyProg.exe
Name: {group}Uninstall MyProg; Filename: {uninstallexe}; WorkingDir: {app}
Filename: {app}INFO.exe; WorkingDir: {app}

TEKTON

Ну тут просто выкидывание файлов описано
Хотелось бы увидеть как определённые байты патчутся

WYLEKАвтор темы

Ответ #8 : 30 июня 2011, 12:53:34 #8 Последнее редактирование: 03 августа 2018, 09:13:30 от WYLEK
Цитата: TEKTONНу тут просто выкидывание файлов описано  
 Хотелось бы увидеть как определённые байты патчутся

 Переведи...

TEKTON

Ответ #9 : 01 июля 2011, 11:00:46 #9 Последнее редактирование: 03 августа 2018, 09:15:04 от WYLEK
Цитата: TEKTONПереведи...
Видел патч одного товарисча, который в Inno делает патчи, кейгены и кряки
 Вот интересно бы увидеть код который в секцию CODE пишется.
 Как известно, в Inno можно вытворять что хочешь Хоть программировать
 Но для этого надо знать Pascal.

WYLEKАвтор темы

Ответ #10 : 01 июля 2011, 11:05:05 #10 Последнее редактирование: 03 августа 2018, 09:15:45 от WYLEK
Цитата: TEKTONВот интересно бы увидеть код который в секцию CODE пишется.

 Так скачай архив в шапке - там полный скрипт. Файл перезалил.

Gnom

Ответ #11 : 09 декабря 2011, 21:59:20 #11 Последнее редактирование: 03 августа 2018, 09:16:25 от WYLEK
Цитата: WYLEKПолный пакет для патча - Войдите на сайт для перехода по ссылке
Ссылка померла - хотел поковырять скрипт.

Metabolic

WYLEK - можеш перезалить файлы необходимые для данного "Урока"?

WYLEKАвтор темы

Ответ #13 : 05 апреля 2012, 21:47:49 #13 Последнее редактирование: 03 августа 2018, 09:17:04 от WYLEK
Цитата: MetabolicWYLEK - можеш перезалить файлы необходимые для данного "Урока"?

Перезалил, архив в шапке

Metabolic

А возможно с помощью "InnoSetup" на основе данного примера сделать инсталятор как в "PatchWise Free" стиля "Simple"?
чтобы инсталятор состоял из одного диолового окна с двумя кнопками - обновить и закрыть.

* Ваши права на сайте

    TinyPortal

  • Вы не можете создавать статьи.
  • Вы не можете изменять свои статьи.
  • Вы не можете писать комментарии.
  • Вы не можете управлять статьями.
  • Вы не можете загружать файлы в TPdownloads.
  • Вы не можете управлять TPlistimages.

    Simple Machines

  • Вы не можете удалять темы.
  • Вы не можете создавать темы.
  • Вы не можете отвечать на сообщения.
  • Вы не можете прикреплять файлы.
  • Вы не можете изменять свои сообщения.
  • Вы не можете удалять свои сообщения.

 аталог@MAIL.RU - каталог ресурсов интернет Яндекс.Метрика