Сайт о телевидении

Сайт о телевидении

» » Sfx архив. Самораспаковывающийся архив

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

Программа написана специально для решения задач по созданию полноценного SFX архива и обладает большими возможностями для создания бесключевых SFX. С ее помощью можно создать как незаметный (silent) инсталлятор, так и инсталлятор с графическим интерфейсом.

Возможности программы SFX Creator:

  • Поддержка всех (ну или практически всех) переменных системных/пользовательских директорий
  • Выбор типа сжатия (LZMA - данный тип компрессии применяется в архиваторе 7-Zip), BZIP2, ZLIB
  • Создание ярлыков для файлов
  • Импорт REG-файлов после распаковки файлов
  • Выполнение приложений до и после распаковки ваших файлов
  • Выполнение операций в реестре (запись/удаление параметров, удаление разделов)
  • Выполнение файловых операций (копирование/удаление файлов, создание/удаление директорий)
  • Возможность создать программу удаления (с удобным добавлением информации в апплет "Установка и удаление программ")
  • Возможность установить свою иконку на SFX архив
  • Возможность добавить информацию о версии файла
  • Возможность выполнить собственные функции, написанные на языке NSIS перед и после распаковки файлов
  • Возможность перед распаковкой ваших файлов проверить наличие установленного ПО и выполнить определённые действия, если вас не устравивает результат проверки (например если версия ПО ниже необходимой, можно прекратить установку и/или показать сообщение пользователю)
  • Возможность распаковать ваши файлы в каталог, который указан в каком-либо ключе реестра
  • Регистрация библиотек при распаковке файлов (и возможность отменить регистрацию при удалении приложения)
  • Возможность при запуске/завершении показать пользователю информационное сообщение
  • Вы можете создавать распаковщик (практически уже пакет инсталлятора) с графическим интерфейсом. Вам предлагается использовать 2 типа интерфейса на выбор
  • Возможность показа вашего изображения перед запуском процесса распаковки файлов
  • При создании проекта с графическим интерфейсом, вы можете добавить отображение изображения на задний план


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

Значок самораспаковывающегося архива может быть разным, поскольку он зависит от программы-архиватора, в котором вы будут его создавать, а также от её версии.

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

Выбираем папку или файлы, которые нужно заархивировать. Щелкаем по ним правой кнопкой мыши и в контекстном меню нажимаем «WinRAR »→ «Add to archive » (Добавить в архив).

Затем появится окно задания параметров для будущего архива. Вот тут-то и самое главное. Чтобы ваш архив был самораспаковывающимся необходимо установить флажок напротив «Create SFX archive » (Создать SFX архив).


Как вы видите на рисунке выше после установки этого флажка, рядом с названием будущего архива, стоит расширение.exe, о котором мы и говорили ранее в статье.

После того, как вы установите все параметры для архива – нажмите кнопку «ОК ». Начнется процесс создания непосредственно самораспаковывающегося архива. Поскольку я использую более новую версию архиватора WinRAR, то у меня значок его выглядит так, но опять таки не переживайте его у вас ярлык выглядит по-другому.

Установка параметров
Для задания параметров самораспаковывающегося архива существует специальная кнопка «SFX options » (Параметры SFX). Она находится во вкладке «Advanced » (Дополнительно).


Затем откроется окно, в котором вы можете изменить иконку архива, указать место распаковки, добавить лицензионные данные (особенно полезно, если вы при помощи самораспаковывающегося архива продаете свою программу, скрипт, плагин и т.д.), модули и многие другие параметры.

Процесс извлечения содержимого
Для того чтобы извлечь содержимое самораспаковывающегося архива необходимо дважды щелкнуть по нему левой кнопкой мыши. В открывшемся окне, используя кнопку «Browse », указываем место распаковки.


После чего жмем на кнопку «Extract » (Извлечь). Процесс извлечения файлов начнется в автоматическом режиме.


Такой метод архивирования файлов и их извлечения прост и не требует каких-либо особых знаний и умений. Область применения 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

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. В нашем случае он будет выглядеть так:

;!@Install@!UTF-8!

;!@InstallEnd@!

Выглядит сложно, но сейчас все прояснится. Первая и последние строки просто обозначают начало и конец конфигурационного файла. Средняя строка - команда, которая будет выполнена после распаковки архива. Непосредственно команда заключается в кавычки и помещается после 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 . Можно сжать модуль утилитой . Это уменьшит размер модуля примерно со 131 кб до 58 кб. Делается это командой

upx --best 7zS.sfx

Достаточно это сделать один раз, и можно использовать сжатый модуль в дальнейшем.

Примечание . Примите к сведению, что некоторые антивирусные программы ошибочно воспринимают SFX модуль, сжатый при помощи UPX, как вирус. Если вам нужно гарантировать успешную распаковку SFX архива в любых условиях, не сжимайте модуль при помощи UPX.

Теперь, когда в одной папке собраны все три файла (adobe7.7z , config.txt и 7zS.sfx ), нужно из командной строки выполнить следующую команду

COPY /b 7zs.sfx + config.txt + adobe7.7z adobe7.exe

Через мгновение в папке появится файл adobe7.exe . Это и есть наш SFX. Его запуск инициализирует распаковку архива во временную папку, запуск команды из конфигурационного файла, и удаление распакованных файлов по окончании установки.

Модифицированный SFX модуль для 7-Zip

Оригинальный 7-Zip SFX модуль не дает возможности сделать распаковку абсолютно незаметной. В процессе распаковки пользователь видит вот такое диалоговое окно

и даже может прервать установку нажатием на кнопку Cancel. Этой проблемы можно избежать, воспользовавшись SFX модулем, который модифицировал участник конференции OSZone Олег Щербаков aka Oleg_Sch . Вы можете загрузить модифицированный модуль со страницы автора , где вы также найдете справку и исходный код. В справке описаны все новые функции и примеры использования (там много интересного). Так что на этой странице я ограничусь лишь примером конфигурационного файла, который полностью скроет диалоговое окно распаковки.

;!@Install@!UTF-8!
RunProgram="StartX.exe /WAIT \"msiexec /i Adobe7.msi /qn\""
GUIMode="2"
;!@InstallEnd@!

Вообще-то, для модифицированного модуля утилита 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-архивом. Он представляет собой особую папку, состоящую из архива и исполняемого кода, с помощью которого он распаковывается.

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

Из данной статьи вы узнаете о том, как его создать, используя наиболее популярные программные продукты.

Программные продукты Winrar и Winzip

Файлы с расширением.exe вам наверняка постоянно встречаются (установочные файлы программных продуктов).

Главное их преимущество заключается не только в том, что они является самораспаковывающимся, но и в том, что их установка не требует наличия каких-либо дополнительных приложений. Для их формирования, как правило, используется WinZip либо WinRar.

Один из выше приведённых архиваторов наверняка уже есть на вашем ПК, поэтому можете сразу же приступать к делу. Схема работы как с WinZip, так и с WinRar одинакова. В качестве примера я возьму последний архиватор.

Кликаете правой кнопочкой мышки на папку, которую желаете заархивировать. В контекстном меню выбираете «Добавить в архив...».

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

Нажмите кнопку “ОК” и начнется процесс формирования. Через определённый период времени на указанном адресе вы увидите SFX-архив.

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

Архиватор 7-Zip

Если на вашем ПК нет ни WinZip, ни WinRar, то вы можете воспользоваться бесплатной программой 7-Zip. Скачать её можно на официальном веб-сайте разработчика. Скачиваете и устанавливаете её.

После установки перед вами появиться окошко File Manager. Там вам нужно указать папку либо файл, которые необходимо заархивировать. Кликаете на команду «Добавить к архиву...». В появившемся окне нужно указать формат 7z и поставить флажок напротив «Создать SFX-архив». Нажимаете на «Ок» и смотрите, как приложение делает свою работу. Итогом работы станет папка с расширением.exe.

А как теперь его распаковать? А очень просто! Сначала запускаете файл, дважды щёлкнув мышью. В появившемся окне в графе под названием «Extract to» указываете путь, по которому будет проводиться распаковка содержимого. Для указания нужной директории нажмите на «…». Нажмите «Extract» и наблюдайте за процессом.

Вот, собственно, и всё, дорогие друзья! Как видите, всё делается очень легко и просто!

Напоследок хочу дать вам один совет: если вы хотите в совершенстве овладеть компьютером и Интернетом, то записывайтесь на курс « Гений компьютерщик » ! Опытные, высококвалифицированные преподаватели простым и понятным языком объяснят вам все компьютерные «премудрости», научать пользоваться различными компьютерными программами и Интернетом.

С уважением! Абдуллин Руслан

Самораспаковывающийся архив (SFX-архив) — файл, который состоит из архива и исполняемого кода для его распаковки. Поэтому для распаковки такого архива не нужно дополнительных программ, таких как WinRar, HaoZip , 7-Zip . В этой статье мы рассмотрим, как можно создать самораспаковывающийся архив , используя для этого такие программы, как HaoZip и 7-Zip.

СОЗДАЕМ САМОРАСПАКОВЫВАЮЩИЙСЯ АРХИВ (SFX-архив) С ПОМОЩЬЮ HAOZIP

Сначала нужно скачать и установить HaoZip . Скачать HaoZip можно по ссылкам в конце статьи. После того, как скачали HaoZip его нужно установить. Процесс установки интуитивно понятен, поэтому останавливаться на этом этапе не будем. Если что-то не понятно, то вопросы установки программ обсуждаются в статье: как установить программу на компьютер?

Теперь приступим к созданию . На файле или папке, из которой хотим создать самораспаковывающийся архив (SFX-архив) кликаем правой кнопкой мыши и в открывшемся меню выбираем «Добавить в архив…». Открылось окно под названием «Архив». В нем в поле «Формат архива» указываем пункт «7Z», а в параметрах архивации ставим галочку возле «Создать SFX-архив (только для 7Z)». Смотрим скриншот:

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


После завершения процесса создания самораспаковывающегося архива или SFX-архива появится архив, с тем же названим, что и исходный файл/папка. Скриншот:


На скриншоте видим, что изначально был файл в формате pdf , из него создали самораспаковывающейся архив или SFX-архив в формате exe. Для распаковки такого архива достаточно двойного щелчка мыши по нему, откроется окно «SFX file»:


В этом окне, в пункте «Destination Folder» указана папка, в которую будет извлечен файл — диск С, папка Program Files. Чтобы указать другую папку для распаковки архива, нажимаем на кнопке «Browse». Если с этими настройками разобрались, то кликаем по кнопке «Install». Начнется процесс извлечения файла. Скриншот:


Итак, как создать самораспаковывающийся архив или SFX-архив с помощью HaoZip, думаю, понятно.

СОЗДАЕМ САМОРАСПАКОВЫВАЮЩИЙСЯ АРХИВ (SFX-архив) С ПОМОЩЬЮ 7-Zip

7-Zip находится в скачанном архиве, его тоже нужно установить. После завершения установки откроется окно 7-Zip File Manager. Оно имеет следующий вид:


Теперь кликаем по значку Компьютер в окне 7-Zip File Manager и указываем файл/папку, из которой нужно создать самораспаковывающийся архив (SFX-архив). Смотрим скриншот:


Нажимаем «Добавить» и откроется окно под названием «Добавить к архиву»:


В этом окне указываем формат архива 7z и ставим галочку возле «Создать SFX-архив». Теперь нажимаем ОК. 7-Zip начнет создавать самораспаковывающийся архив или SFX-архив. Скриншот:


Результат работы: файл «сайт.exe» — самораспаковывающийся архив (SFX-архив):


Теперь рассмотрим, как распаковать созданный нами самораспаковывающийся архив . Двойным щелчком мыши запускаем архив, откроется окно:

В поле «Extract to» указано путь распаковки файлов из самораспаковывающегося архива . Если нужно, то можно указать другое место для распаковки файлов. Для этого нажмите на кнопке и укажите другой путь распаковки файлов. Нажимаем «Extract» и начнется распаковка архива.

На этом закончим. Ваши отзывы, вопросы, пишите, пожалуйста, на форуме. Желаем успеха!!!