Создание SFX архива
Нередко при работе над автоматической установкой приложений возникает необходимость создать бесключевой самораспаковывающийся архив (в дальнейшем я буду использовать "SFX", так короче). Как правило, SFX архивы позволяют значительно сэкономить место на CD. Например, если приложение не требует установки, то его можно поместить в $OEM$\Progs и оно будет автоматически скопировано в Program Files. Однако, аналогичной цели можно достичь запаковав приложение в SFX, который распакует содержимое в нужную папку.
Область применения SFX не ограничивается приложениями, не требующими установки. Можно без проблем упаковать приложение, запакованное одним из распространенных инсталляторов и сконфигурировать SFX таким образом, что после распаковки будет запущена установка приложения с нужными ключами. Еще одним преимуществом SFX архивов является то, что в некоторых случаях они дают возможность не просто автоматизировать, но и полностью скрыть процесс и прогресс инсталляции от конечного пользователя. Для примера рассматривается упаковка Adobe Reader 7.0. Несмотря на то, что с относительно недавних пор приложение можно устанавливать с соответствующими ключами без особых проблем, только SFX позволяет установить приложение абсолютно незаметно.
Подготовка к созданию SFX
Вне зависимости от того, что вы будете использовать для создания SFX, различий в подготовке не будет. Если вы просто хотите запаковать папку с файлами, то никакой подготовки не требуется. А вот приложения иногда приходится распаковывать. В случае с Adobe Reader 7 используется Install Shield с Basic MSI, причем все это еще и запаковано в некий FEAD Optimizer. Надо запустить исполняемый файл Adobe, дождаться пока FEAD Optimizer закончит распаковку и найти папку с файлом Adobe Reader 7.0.msi (она может быть в %ProgramFiles%\Adobe, например). Теперь нужно запустить файл setup.exe с ключом /a для создания административной установки. В появившемся диалоговом окне нужно указать папку, в которой по окончании будут находиться все нужные нам файлы. Теперь можно переименовать Adobe Reader 7.0.msi в, скажем, Adobe7.msi и приступать к упаковке в SFX архив. Мы рассмотрим создание SFX архивов при помощи
WinRAR
WinRAR — не нуждающийся в представлении архиватор. Он обладает широкими возможностями для создания бесключевых SFX. С его помощью можно создать незаметный (silent) инсталлятор, который распакует содержимое SFX в заданную папку, выполнит заранее указанную команду, а по окончании установки может удалить распакованные файлы. Помимо всего WinRAR умеет добавлять элементы в меню Пуск, помещать ярлыки на Рабочий стол, а также задавать архиву иконку по вашему выбору. Я рассмотрю только базовые возможности программы, а с остальными вы без труда разберетесь при помощи справки.
Итак, запустив архиватор, мы переходим в папку, в которой находится административная установка Adobe. Выделяем все файлы

и жмем Добавить

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

и переходим на вкладку Режимы:

Здесь мы указываем распаковку во временную папку (что повлечет за собой автоматическое удаление распакованных файлов по окончании установки), скрытый режим и перезапись всех файлов.
Перейдя на вкладку Комментарий, мы видим все параметры, которые только что сконфигурировали через графический интерфейс. В принципе, можно было сразу перейти на эту вкладку и напечатать комментарий вручную или загрузить из заранее подготовленного текстового файла.
Примечание Поскольку мы запаковываем приложение, имеющее собственный инсталлятор, то распаковка во временную папку вполне оправдана (параметр TempMode). Если же вы просто хотите распаковать файлы в нужную вам папку, то на вкладке Общие нужно указать путь (можно использовать системные переменные), и соответственно, не использовать TempMode.
Вот и все. Теперь осталось нажать ОК пару раз и спустя некоторое время у нас будет SFX, который совершенно незаметно установит Acrobat Reader.
Преимущества: абсолютно незаметная (silent) установка, возможность распаковки файлов в заданную папку, возможность добавления элементов в меню Пуск и ярлыков на рабочий стол, выбор иконки для архива.
Недостатки: стоит $30.
7-Zip — бесплатный архиватор, распространяющийся по лицензии GNU LGPL. Если вы с ним не знакомы, то более подробную информацию вы найдете на сайте 7-Zip. С его помощью можно создавать бесключевые SFX, хотя процесс их создания несколько длиннее, чем у WinRAR.
Для начала нужно запаковать содержимое нашей папке в 7-Zip архив. Сделать это можно через 7-Zip файл-менеджер. Запустив его, мы переходим в папку, в которой находится административная установка Adobe. В эту же папку нужно положить файл StartX.exe (его назначение я объясню ниже). Выделяем все файлы

и жмем Добавить

Именуем архив по желанию (скажем, Adobe7.7z), выбираем формат 7-Zip, максимальный уровень сжатия и жмем ОК. На выходе получаем файл Adobe7.7z, из которого нам предстоит сделать SFX.
Теперь нужно создать конфигурационный файл для SFX. Его можно сделать в Блокноте. Единственное, но обязательное условие — он должен быть в кодировке UTF-8. В нашем случае он будет выглядеть так:
Выглядит сложно, но сейчас все прояснится. Первая и последние строки просто обозначают начало и конец конфигурационного файла. Средняя строка — команда, которая будет выполнена после распаковки архива. Непосредственно команда заключается в кавычки и помещается после RunProgram=. Утилита StartX.exe является эквивалентом консольной команды START и поддерживает такие же ключи. Ее наличие необходимо для установки MSI пакета, извлеченного из 7-Zip SFX. Если попытаться сделать нечто вроде RunProgram="Adobe7.msi /qn", то запуск завершится ошибкой. Два обратных слэша (\) просто предваряют кавычки, находящиеся внутри команды.
Сохраняем конфигурационный файл с именем config.txt в ту же папку, где Adobe7.7z, и переходим к завершающей стадии создания SFX.
Из инсталляционной папки 7-Zip нужно взять SFX модуль 7zS.sfx и скопировать его к файлам Adobe7.7z и config.txt. Можно сжать модуль утилитой UPX. Это уменьшит размер модуля примерно со 131 кб до 58 кб. Делается это командой
Достаточно это сделать один раз, и можно использовать сжатый модуль в дальнейшем.
Примечание . Примите к сведению, что некоторые антивирусные программы ошибочно воспринимают SFX модуль, сжатый при помощи UPX, как вирус. Если вам нужно гарантировать успешную распаковку SFX архива в любых условиях, не сжимайте модуль при помощи UPX.
Теперь, когда в одной папке собраны все три файла (adobe7.7z, config.txt и 7zS.sfx), нужно из командной строки выполнить следующую команду
Через мгновение в папке появится файл adobe7.exe. Это и есть наш SFX. Его запуск инициализирует распаковку архива во временную папку, запуск команды из конфигурационного файла, и удаление распакованных файлов по окончании установки.
Модифицированный SFX модуль для 7-Zip
Оригинальный 7-Zip SFX модуль не дает возможности сделать распаковку абсолютно незаметной. В процессе распаковки пользователь видит вот такое диалоговое окно

и даже может прервать установку нажатием на кнопку Cancel. Этой проблемы можно избежать, воспользовавшись SFX модулем, который модифицировал участник конференции OSZone Олег Щербаков aka Oleg_Sch. Вы можете загрузить модифицированный модуль со страницы автора, где вы также найдете справку и исходный код. В справке описаны все новые функции и примеры использования (там много интересного). Так что на этой странице я ограничусь лишь примером конфигурационного файла, который полностью скроет диалоговое окно распаковки.
Вообще-то, для модифицированного модуля утилита StartX не нужна, и можно было бы обойтись RunProgram="Adobe7.msi /qn" .
Любопытно, что в данном случае 7-Zip продемонстрировал лучшее сжатие, чем WinRAR. Размер 7-Zip SFX (даже с утилитой StartX.exe) оказался 20893 кб против 23825 кб у WinRAR SFX. Oднако, недостатком родного SFX модуля 7-Zip является невозможность сконфигурировать бесключевую распаковку SFX в заданную папку. Модифицированный модуль Олега, позволяет указать папку распаковки в конфигурационном файле и избавляет 7-Zip от данного недостатка.
Преимущества: бесплатен, высокая степень сжатия; а с модифицированным SFX модулем доступны абсолютно незаметная (silent) установка и возможность распаковки файлов в заданную папку, добавление элементов в меню Пуск и ярлыков на рабочий стол, а также многие другие функции.
Недостатки: нет возможности выбора иконки для архива (планируется исправить в будущих версиях модифицированного модуля Олега).
SFX Creator
SFX Creator — бесплатная программа, написанная одним из участников конференции OSZone.net — K.A.V.

Программа написана специально для решения задач по созданию полноценного SFX архива и обладает большими возможностями для создания бесключевых SFX. С ее помощью можно создать как незаметный (silent) инсталлятор, так и инсталлятор с графическим интерфейсом.
Создание самораспаковывающегося архива
Для начала определимся с тем, что такое самораспаковывающийся архив SFX – это программа, объединяющая в себе архив и специальный код для его распаковки.
Для чего он нужен и может быть полезен? Такой архив очень полезен, если Вам нужно отправить файлы другу (например, по электронной почте), но Вы не знаете есть ли у него программа для работы с архивами, с помощью которой он его откроет.
Как работает самораспаковывающийся архив? Архив SFX создается в виде .exe файла, (самостоятельного приложения) и может быть открыт на любом компьютере. После его открытия нужно выбрать путь для файлов (папку, в которую будут распакованы файлы) и нажать кнопку «Извлечь».
Создание самораспаковывающегося архива в программе WinRAR
Для начала подготовим наши файлы, которые мы хотим поместить в архив SFX. Я для примера взял три текстовых файла.

Их мы и поместим в наш волшебный архив. И так начнем. Выделите подготовленные Вами файлы и нажмите по ним правой кнопкой мыши, далее выберите «Добавить в архив…». Смотрите скриншот ниже:

Теперь в появившемся окне во вкладке «Общие» нужно произвести настройки, дабы архив стал самораспаковывающимся.

1. Выбираем имя для нашего архива, например «Файлы для Артема.exe».
2. Выбираем формат архива «RAR».
3. В параметрах архива ставим галочку напротив «SFX-архив».
Жмем «ОК» и наш самоизвлекающийся архив создастся. Его можно сразу же отправлять другу, не боясь, что у него нет программы архиватора.
Вот так выглядит уже готовый самораспаковывающийся архив рядом с подготавливаемыми файлами.
Как создать Самораспаковывающийся архив
Самораспаковывающиеся архивы прекрасно подходят для обмена файлами, как просто между компьютерами, например, по флешке, так и в интернете. Они очень удобны, особенно для ПК новичков.
Чтобы разархивировать такой вид архива, нет необходимости дополнительно устанавливать сторонние программы, достаточно просто открыть его и выбрать место куда распаковать содержимое.

Вы уже знаете, как разархивировать файл и папку, сейчас мы рассмотрим, как можно сделать самораспаковывающийся архив SFX с помощью трех самых лучших популярных программ. Вы можете скачать их в соответствующем разделе данного сайта.
Процесс архивации будет практически идентичен созданию простого архива — только несколькими действиями, если вы еще не знаете — как заархивировать файлы, то прочитайте соответствующую статью в данном блоге, чтобы у вас не возникало дополнительных вопросов.
Как создать самораспаковывающийся архив в WinRAR
Архиватор номер один в мире, обладает большим функционалом, хорошими параметрами сжатия, простым и понятным интерфейсом — именно с него мы и начнем описание.
1. Кликните по необходимым файлам/папкам правой кнопкой мышки и перейдите по пункту «Добавить в архив…».

2. В окошке с параметрами установите галочку напротив пункта «Создать SFX-архив» и, если необходимо, установить пароль — кликните по кнопке «Установить пароль…» и введите его.

Будет создан файл SFX с расширением «.EXE», который сможет распаковать даже новичок, только недавно познакомившийся с компьютерами.
Как создать самораспаковывающийся архив в 7-Zip
Самый популярный бесплатный архиватор, который обладает превосходным функционалом и отличными характеристиками сжатия данных. Рекомендую использовать именно данный софт если ваш компьютер не обладает впечатляющими системными характеристиками, т.к. он работает быстро даже на слабых машинах.
1. Правой кнопкой мышки щелкните по нужным элементам и перейдите поочередно по пунктам — «7-Zip» и далее «Добавить к архиву…».

2. Откроется окошко с параметрами архивации в котором необходимо включить галочку у строки «Создать SFX-архив». Если его дополнительно требуется запаролить — введите пароль в разделе шифрование.

Так же, как и ВинРАР, 7-Зип создаст файл в формате «.EXE», который будет легко разархивировать просто открыв его.
Как создать самораспаковывающийся архив в WinZip
Архиватор, который больше популярен за рубежом, но и у нас им пользуются довольно многие. WinZip в отличие от описываемых выше программ позволяет сделать самораспаковывающийся SFX архив только уже из готового, поэтому действия будут немного другими.
1. Кликните по необходимым данным правой кнопкой мышки и перейдите по пункту «Добавить к архиву…» и далее в открывшемся окне по «Добавить».

2. Перейдите по табу «Инструменты» в верхней части программы и кликните по меню «Самораспаковывающийся EXE».

3. В открывшемся окне нажмите на кнопку «Сохранить и запустить». Далее, в проводнике выберете расположение, где сохранить файл.

4. Остается лишь нажать на кнопку «ОК» и процесс будет закончен.

Как видите, и в ВинЗип все можно сделать тоже легко и быстро не потратив много времени на его изучение.
В заключение
На этом я заканчиваю данную статью, надеюсь она для вас оказалась полезна. Если у вас возникают какие-то вопросы по данной теме — то не стесняйтесь задавать вопросы в комментариях. Удачи!