Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка приложений (http://forum.oszone.net/forumdisplay.php?f=61)
-   -   Создание SFX-архивов для автоматической установки (http://forum.oszone.net/showthread.php?t=194882)

FlexAdmin 24-12-2010 10:26 1573416

Создание SFX-архивов для автоматической установки
 
Вложений: 1
Предлагаю в данной теме изучать вопросы, касающиеся создания SFX-архивов, а так-же делиться своими работами.

Начнем с примера - Locate32.





1. Механизмы программы
читать дальше »

Для начала нужно обратить на такие детали, как настройки программы. Подопытный имеет возможность хранить свои настройки и в файле и в реестре, по желанию. Чтобы не задавать потом вопросов, мы рассмотрим вариант работы с реестром сразу.
Программа имеет только один критически важный параметр, который нам нужно перенести: язык интерфейса. Сразу настройте эту опцию у себя на машине, сохраните настройки путем выхода из программы. А теперь пройдемте в реестр, Господа:





Очевидно, что этот параметр отвечает за выбранный язык интерфейса. Открываем блокнот, сохраняем файл "Install.cmd" в папке с Подопытным.
Теперь пишем в нем:
Код:

REG DELETE HKCU\Software\Update /f
REG ADD HKCU\Software\Update\Locate32 /v Language /t REG_SZ /d Lan_ru.dll

Первая строка удаляет раздел реестра, чтобы вычистить настройки, вторая создает ключ с указанием языка.
Вопрос с настройками мы решили. Обратимся к специфике первого запуска: Что делает программа, когда её запускают в первый раз? Она делает настройки, ассоциируется с файлами и обновляет всякие свои базы данных. Пациент активно работает с базой данных, которую при первом запуске нужно создать. Обращаемся к файлу справки нашей программы, ищем ключ, отвечающий за выполнение подобных операций.

Отлично, ключ -u. Добавим его в наш Install.cmd
Так-же нам нужна иконка для SFX-архива. Её можно извлечь такими программами, как ResHacker, Restorator и т.д. Извлеките её и положите в папку с программой, дав ей имя "Icon"(Для однозначности).





Код:

start locate32.exe -u
Сохраните файл. Для проверки результата своей работы удалите из реестра раздел с настройками, перенесите программу в другую папку и запустите Install.cmd. Все прошло гладко? Язык русский? Это хорошо, ведь это значит, что мы будем делать архив.



2. Знакомтесь: Архив. SFX-Архив.
читать дальше »
Программирование это Дзен. Хоть мы и не пишем программу, а делаем архив, мы всё равно должны помнить о Дзене и забыть о привязанностях, поэтому не жмите на папочку Locate32, в поисках "Добавить в архив...", а зайдите в неё и добавьте СОДЕРЖИМОЕ ПАПКИ, поскольку название конечной папки должен выбирать пользователь. Смотрите, если вы не поняли, что я имею в виду.
Теперь смело жмите "Добавить в архив".





Галочка "Создать SFX-архив": Ставим, иначе ничего не получится.
Выпадающий список "Метод сжатия": На маленьких программках можно ставить "Максимальный". Если вы пакуете большую игру или папку с музыкой(лол) то не стоит сжимать вообще. Ну если только немножко.
Галочка "Добавить электронную подпись": Если у Вас своя собственная лицензионная копия WinRaR, зарегистрированая на Вас, то отметьтесь, как автор этого творения. Если у Вас пиратский WinRaR, то вы предпишете авторство владельцу лицензионного ключа.
Галочка "Добавить информацию для восстановления": Если Вы собираетесь таскать эти программы на компакт-дисках, которые любят царапаться, то стоит потратить время и на это.
Галочка "Заблокировать архив": Если Вам нравиться секс с пересборкой архива, то ставьте. Но я рекомендую делать это в последний момент. Я скажу, как. Кстати, есть Файл 56792 для снятия блокировки.
Открываем вкладку "Дополнительно". Если вы используете информацию для восстановления, то установите значение в соответствующем поле. Рекомендую 5%. Теперь ищите кнопку "Параметры SFX".

Вкладка "Общие":

Поле "Путь для распаковки": Если мы ставим полезную утилиту, то просто пишем название папки(в нашем случае "Locate32"), если игру, то пишем "C:\Games\Zuma". Соответственно в первом случае переключатель должен стоять в положении "Создать в папке 'Program Files'", а во-втором "Абсолютный путь".
Галочка "Сохранять и восстанавливать пути": нужна лишь в том случае, если мы работаем с регулярно обновляемой программой, апдейты которой распаковываются в одно и тоже место. Игнорируйте галочку.
Поле "Выполнить до установки": сюда мы вводим Install.cmd.
читать дальше »
Если батник/программа лежат не в корне архива, а, предположим, в папке "bin", то указываем путь bin\Install.cmd. Вообщем в архиве пути выглядят так-же, но там нет понятия "имя диска" и пути растут от корня архива.


Вкладка "Текст и графика"

Не надо сидеть и выдумывать тексты, если всё придумано до вас. Нажимайте "Загрузить текст из файла" и выбирайте файл Readme от своего подопытного. Там уже все написано, и версия с билдом, и системные требования и... И всё! Загружайте значок icon.ico, который вы выдрали из EXE-файла подопытного, если найдется логотип(Он, кстати, в подопытном есть, можно выковырять. Правда он горизонтальный, не впишеться. Как вписать, я расскажу потом).

Вкладка "Лицензия"
Не стоит заполнять эту вкладку, если не хотите тратить время на "Согласен с условиями", к тому же подопытный имеет текст лицензии GNU в файле Readme. Достаточно проследить, чтобы файл License.txt попал в архив и сопровождал подопытного. Если же хотите сделать всё правильно, то загрузите его в SFX.

Вкладка "Режимы"

Выбираем "Не показывать начальный диалог". Можно, конечно, выбрать "Скрыть всё", но тогда мы не будем видеть полосочки с заветными процентами, которая так радует глаз в больших архивах. Словом, если вы уверены, то делайте выбор сами.

Вкладка "Дополнительно"
На всякий случай установите галочку "Запрос административного доступа", чтобы вашу работу не испортил UAC, тот что в Windows Vista/7. Теперь жмем "Добавить ярлык...".



Не забывайте, что путь к файлу нужно писать ОТ КОРНЯ АРХИВА.
Тем-же манером создаем ярлык для обновления баз. Только теперь в поле "Имя файла" мы пишем locate32.exe -u. Рекомендую расположить 2 ярлычка в папке "Пуск\Программы"



Добавив ярлыки и перепроверив все настройки нажимаем "Сохранить текущие параметры, как стандартные"(на вкладке "Общие"), чтобы в следующий раз видеть что и где изменять.
Теперь жмем ОК и попадаем в предидущее окно. Открываем вкладку "Время" и снимаем галочку "Сохранять точное время изменения файлов", для идеальности. Проверяем и жмем кнопку ОК.



3. Работа над ошибками

читать дальше »
SFX-Архив можно модифицировать WinRaR-ом, да-да. Сначала мы запустим его. Если не всё работает нормально, то:
Правой клавишей на продукте, WinRaR, Открыть в WinRaR. Там нам дана кнопка "SFX"

Так-же вы можете самостоятельно научиться править SFX через коментарии, как правило это упрощает создание больших количеств ярлыков.

Обратите внимание, что отладку CMD-файлов, скриптов, свистелок и перделок следует ВНЕ архива. После исправления этих ошибок вы можете перетащить все файлы из папки в окно архива.
При этом Вас спросят параметры архива вновь. Постарайтесь сделать их такими-же. Только SFX-параметры трогать вообще не нужно.



4. Логотип
читать дальше »
Откройте SFX-архив программой ResHacker, выберите слева Dialog\STARTDLG

Логотип программы имеет размер 442*80. Задаем размеры поменьше, теперь растягиваем объекты так, чтобы уместить логотип. Обратите внимание, что на панели ResHacker'а показываются координаты и размеры выделеных объектов, а для точного перетаскивания можно воспользоваться стрелками на клавиатуре. Либо, если вы сообразительны и быстро понимаете всякие принципы, то просто отредактируйте текст под формой.
Если вы не зашили логотип при сборке архива, то самое время сделать это сейчас. Ресурс лежит в разделе BitMap. Обратите внимание, что следует сохранить формат. Кстати, размер объектов в ResHacker'е указан в твипах. Учтите это при подгонке рисунка.


5. Блокировка архива
читать дальше »
Открываем SFX-архив в WinRaR, жмем на панели кнопку "Информация", вкладка "Параметры", галочка "Запретить изменения архива". Рекомендую создать резервную копию.




Не забывайте, что WinRaR - платная программа.

В силу ограничений выкладываю эту работу на RGHost'е
читать дальше »

Механизмы программы:
Иногда, для достижения эффекта русификации достаточно одного из 2-х вариантов:
- Удалить все локализации, кроме русской
- Перезаписать файл локализации по умолчанию русскоязычным файлом
Так-же подобные настройки нередко храняться в INI и CFG файлах.

Работа с реестром в CMD/BAT файлах
Утилита REG дает нам возможность проводить любые манипуляции с реестром. Полезно знать синтаксис работы с ней. Для получения справки введите в командной строке "REG /?"

leeseecin 24-12-2010 12:11 1573487

FlexAdmin, а чем плох этот вариант? вреде бы написано доступно для восприятия.

FlexAdmin 24-12-2010 18:27 1573748

Статью я обнаружил после написания своей работы, это раз. К сожалению интернет краев не имеет, все статьи прочесть не реально, а на вашем сайте их предостаточно. Имеются и различия. В своей работе я пояснял людям принципы создания инсталятора, а не запаковки инсталятора для тихой установки(об этом была статья приведенная ранее), поэтому мой велосипед имеет другое значение. Плюс моя работа имеет больше пояснений, ПОЧЕМУ нужно делать то или иное действие.

Есть во-вторых: Я предлагаю выкладывать сюда работы.

gora 29-12-2010 11:10 1576868

FlexAdmin

1 Приведите шапку в соответствие с ОПК п.3.9, как геометрические размеры картинок, так и общий их "вес", который не должен превышать 40кБ (у Вас более 500кБ).
2
Цитата:

Цитата FlexAdmin
Создание SFX-архивов »

Вы привели пример RAR SFX-архива, остальные (CAB, ZIP, 7z ...) Вы тоже будете описывать?
3
Цитата:

Цитата FlexAdmin
Начнем с примера - Locate32. »

Для начала неплохо было бы сказать, что это за программа, и дать ссылку на сайт разработчика.
4
Цитата:

Цитата FlexAdmin
Я предлагаю выкладывать сюда работы »

Что именно Вы подразумеваете под этим выражением? Выкладывать готовые SFX? Или подробное описание его изготовления с картинками?

FlexAdmin 02-01-2011 13:12 1579108

1. Хорошо, но позже.
2. Нет, если только SFX для 7Z
3. Хорошо. Позже.
4. Очевидно же.

Oleg48 02-01-2011 20:53 1579365

По этому поводу есть несколько статей даже на сайте цельная unattended.oszone.net.chm,считаю автора не оригинальным, а 7zSFX лучще делать модифицированным модулем Олега Щербакова, судя по нику автора, он типа круче всех, статьи которые висят на сайте уже несколько лет он прочитать не может, видно лень.
Цитата:

Цитата FlexAdmin
К сожалению интернет краев не имеет »

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

FlexAdmin 03-01-2011 09:16 1579594

Тема не интересна никому, поэтому я не буду ничего исправлять.
Тема предлагала отвечать на вопросы о переносе настроек. Были рассмотрены примеры того, как самостоятельно выяснить, какие настройки необходимо переносить. Вам никогда не приходилось работать с переносом непереносимого. Короче - удаляйте тему, если модерастам не нравится.

Статья слишком общая, не говорит о многом. Это раз. Аналогичные темы не предлагают ничего.

Вы умеете отслеживать, какие библиотеки "потащит" за собой программа, из тех, что размещает в папке системы при установке? А многие - нет. Может им не стоит задавать эти вопросы здесь? Может Oleg48 реализует свои амбиции и будет отвечать на эти вопросы в личке?

Цитата:

Цитата FlexAdmin
Предлагаю в данной теме изучать вопросы, касающиеся создания SFX-архивов»

Или не по-русски написано?

Oleg48 03-01-2011 12:59 1579698

Цитата:

Цитата FlexAdmin
Были рассмотрены примеры того, как самостоятельно выяснить,какие настройки необходимо переносить »

в Вашем примере не сказанно нечего каким образом вы нашли ключи реестра указывающие что нужно именно эту dll-привязывать в реестре, может проще переименовать рускую dll-ку в английскую и ненадо нечего прописывать, как вариант. И ненадо бросаться в крайности и оскарблять окружающих
Цитата:

Цитата FlexAdmin
если модерастам не нравится »

Разместили статью терпите критику.

P.S. FlexAdmin держите себя в руках

MKN 03-01-2011 14:28 1579742

Цитата:

Цитата FlexAdmin
2. Нет, если только SFX для 7Z »

Имеется ввиду модифицированный модуль Олега Щербакова ? Если да, то хорошее дело, т.к. конкретных примеров с подробными комментариями по созданию дистрибутивов 7ZSFX оч. мало.
Если нет, то совершенно не внятно заявлена и бессвязно описана тема... Не понятно , зачем рассказывать очевидные справочные вещи про WinRAR ?
Цитата:

Цитата FlexAdmin
Или не по-русски написано? »

Написано то по-русски, только понять о чём всё же речь, сложно.

зы ИМХО Если рассматривать SFX архивы с позиции создания с их помощью дистрибутивов, то это сомнительное занятие...
Т.к. резко ограничены возможности по сравнению, скажем, с тем же NSIS или Inno.
А WinRAR вообще никуда не годен из-за убогой степени сжатия.

FlexAdmin 04-01-2011 07:55 1580253

В отношении степени сжатия - это малокритично. Если архив и так не большой - то какая разница 3 или 5 мегабайт? А в отношении больших архивов главный критерий - скорость алгоритма.

grey2 03-01-2012 12:27 1827388

Ребят. Я наверное не там тему создал. Нужно было тут написать свой вопрос.
Вот тут мой вопрос на тему sfx архивов:
Цитата:

Перепробовал все sfx архиваторы. Но при запуске готового exe файла размером 2гига у меня комп думает очень долго. А например если я упакую через упаковщик от zipmonster _ ru то при запуске готового exeшника он запускается сразу же. Мне надо так же. Как это сделать? Чем паковать? Я так понял у zipmonster после запуска считывается только часть файла, которая отвечает за распаковку. А остальная часть считывается уже только при нажатии кнопки "распаковать". Каким архиватором можно так же сделать?
помогите плз:)

kazimir 11-03-2012 10:40 1876675

добрый день .
у меня вопрос по путям распаковки архива . задача: чтоб архив распаковывался на раб. стол независимо от ОСистемы .

на ХП путь %UserProfile%\Рабочий стол . а на 7 немного другой ( я ща на ХП- не могу подглядеть ) .
какой путь прописать , чтоб архив и на ХП и на 7 рапаковывался на раб-й стол ?
и пожелание .
у кого есть желание напишите пож-та всевозможные пути .

gora 11-03-2012 11:08 1876688

Цитата:

Цитата kazimir
чтоб архив распаковывался на раб. стол независимо от ОСистемы »

Т.к., тип SFX не озвучен, предложу для 7z SFX на базе модифицированных модулей:
Код:

InstallPath="%UserDesktop%"

kazimir 11-03-2012 13:11 1876770

gora,
благодарю . так-то SFX вин-рара . но , думаю , разницы нет . или есть ? ща проверю .
ещё вопрос . как сделать SFX рар архив , чтоб распаковывался в 2 и более мест ? например SFX с темами и вальваперс . чтоб был 1 SFX архив . при запуске распаковка пошла тем в папку темес , а вальваперс в веб\вальваперс .

при прописывании пути InstallPath="%UserDesktop%" неактивна кнопка Абсолютный путь . это норма ? он же пойдёт в программ файлос . или как ?

[IMG][/IMG]

gora 11-03-2012 13:51 1876806

kazimir, RAR SFX я не использую уже 5 лет, подсказать не берусь, но думаю, что и там невозможно распаковать архив сразу в две разные папки. Для 7z SFX эта задача обычно решается распаковкой всего содержимого во временную папку и последующим копированием в нужные папки.
Почитайте здесь.


Время: 03:31.

Время: 03:31.
© OSzone.net 2001-