Спокойно, вот вторая половина сообщения лорентса: Именуем архив по желанию (скажем, Adobe7.7z), выбираем формат 7-Zip, максимальный уровень сжатия и жмем ОК. На выходе получаем файл Adobe7.7z, из которого нам предстоит сделать SFX.
Теперь нужно создать конфигурационный файл для SFX. Его можно сделать в Блокноте. Единственное, но обязательное условие - он должен быть в кодировке UTF-8. В нашем случае он будет выглядеть так:
Code
;!@Install@!UTF-8!
RunProgram="StartX.exe /WAIT \"msiexec /i Adobe7.msi /qn\""
;!@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. Можно сжать модуль утилитой UPX. Это уменьшит размер модуля примерно со 131 кб до 58 кб. Делается это командой
Достаточно это сделать один раз, и можно использовать сжатый модуль в дальнейшем.
Примечание. Примите к сведению, что некоторые антивирусные программы ошибочно воспринимают SFX модуль, сжатый при помощи UPX, как вирус. Если вам нужно гарантировать успешную распаковку SFX архива в любых условиях, не сжимайте модуль при помощи UPX.
Теперь, когда в одной папке собраны все три файла (adobe7.7z, config.txt и 7zS.sfx), нужно из командной строки выполнить следующую команду
Code
COPY /b 7zs.sfx + config.txt + adobe7.7z adobe7.exe
Через мгновение в папке появится файл adobe7.exe. Это и есть наш SFX. Его запуск инициализирует распаковку архива во временную папку, запуск команды из конфигурационного файла, и удаление распакованных файлов по окончании установки.
Любопытно, что в данном случае 7-Zip продемонстрировал лучшее сжатие, чем WinRAR. Размер 7-Zip SFX (даже с утилитой StartX.exe) оказался 20893 кб против 23825 кб у WinRAR SFX. Oднако, недостатком родного SFX модуля 7-Zip является невозможность сконфигурировать бесключевую распаковку SFX в заданную папку. Модифицированный модуль Олега, позволяет указать папку распаковки в конфигурационном файле и избавляет 7-Zip от данного недостатка.
Преимущества: бесплатен, высокая степень сжатия; а с модифицированным SFX модулем доступны абсолютно незаметная (silent) установка и возможность распаковки файлов в заданную папку, добавление элементов в меню Пуск и ярлыков на рабочий стол, а также многие другие функции.
Данная статья была взята с сайта oszone.net
От себя скажу , что методом 7-zip + SFX пользуются такие компании как Adobe, Norton, Nero, Mozilla и многие другие компании
и еще на мой взгляд 7-zip на голову превосходит WinRaR в степени сжатия. В дальнейшем я остановлю свое внимание только 7-zip
Добавлено (27 Август 2008, 00:13)
---------------------------------------------
Если до этого все было понятно, тогда продолжим
1. прочтя выше представленную статью, могли обратить внимание, что было упомянуто о маленькой, но очень нужной программе UPX - упаковщик исполняемых файлов, поддерживающий несколько различных платформ и форматов файлов. Работает через командную строку, для тех кто с командной строкой на Вы, то есть так называемые "оболочки" на пример UPX X-Shell 1.4, еще автор статьи предупреждал, что некоторые антивирусные программы ошибочно воспринимают SFX модуль, сжатый при помощи UPX, как вирус, скажу честно ни разу за все вре использования UPX с этим лично не сталкивался, и еще статья была опубликована в 2005 году, и за это время UPX не раз обновлялся.
2. WinUpack - неплохая альтернатива UPX
3. как же изменять в модулях SFX диалоговое окно или иконку и т.д.? в этом случае подойдет любой редактор ресурсов, я лично использую Restorator 2007
4. 7zsfx.info - сайт посвяшенный 7-zip и SFX, так что настоятельно рекомендую его посмотреть и оязательно зайдите на страницы Примеры использования и Ссылки для загрузки
4.1 7z SFX Archive splitter - улита для вытаскивания модуля SFX из уже созданного самораспаковывающегося архива (.exe)
4.2 7z SFX Tools - Набор для работы с 7z SFX архивами. Состав: 4 модифицированных модуля, 7z SFX Archive Splitter, справочный файл. Все модули которые лежат в архиве не дают возможности изменять диалогов окно, только иконка и версия
5. Ultra7z Optimizer 0.03 - Программка для оптимизации (уменьшения) 7z-архивов за счёт выбора лучшего алгоритма сжатия PPMD/LZMA для каждого расширения файлов. Просто перетаскиваете нужный архив (7z, rar, zip) на exe-файл...
программа действительно увеличивает степень сжатия, но к этому архиву подходит только один модуль SFX и это 7ZSD_All.sfx который есть внутри архива пункта 4.2.
6. для тех кто общается с командной строкой на вы и не может соединить архив 7-zip и модуль SFX есть и плохо понимает что надо писать в txt файле есть специальная улита, GUI_7zS
ну и в конце добавлю еще свои модули, которые взял с других программ
http://webfile.ru/2186723
Добавлено (27 Август 2008, 19:34)
---------------------------------------------
Прошу прощения за то, что стал редактировать сообщение лорентса,
чтобы выделить там ссылку на первоисточник, а форумный скрипт не дал
сохранить его целиком из-за превышения лимита, и пришлось вторую
половину запостить вот так... Сорри