О модифицированном модуле

Общая информация о модифицированном модуле

  • Автор: Олег Щербаков
  • Домашняя страница
  • Обсуждение
  • Ошибки, замечания и предложения: 7zsfx@solta.ru
  • Данный модуль распространяется по лицензии GNU LGPL

В этой справке внешние ссылки (требуют подключения к интернету) при наведении курсора мыши меняют цвет на красный. По остальным можете щелкать, сколько хотите, не беспокоясь о своем трафике [image].

В архиве находятся 4 модуля. Для каждого метода сжатия (LZMA, Deflate, PPMd) имеется отдельный модуль, а так же модуль, способный работать с любым из этих методов. Все сказанное в дальнейшем относиться к любому из модулей.

Модифицированный модуль предоставляет широкие возможности для создания SFX архивов. Используя модуль, Вы можете:

  • указывать желаемый путь распаковки содержимого архива
  • использовать как абсолютные, так и относительные пути
  • выбирать между интерактивной, "тихой" и скрытой распаковкой
  • контролировать внешний вид диалоговых окон и текста в них
  • конфигурировать различные варианты установки запакованных приложений, впоследствии выбирая нужный сценарий ключом командной строки
  • конфигурировать установку нескольких (до 10) разных запакованных приложений, впоследствии выбирая нужные приложения и последовательность их установки ключом командной строки
  • просто распаковать архив в желаемую папку
  • запускать после распаковки последовательно несколько файлов (.exe, .msi, .reg и т.п.) и использовать его для установки приложений
  • заменить, применяемые ранее для установки, .bat или .cmd файлы и исключить необходимость использования "StartX.exe", "msistub.exe" и подобных утилит
  • создавать ярлыки к программам и назначать значки для этих ярлыков по своему усмотрению
  • использовать архивы с разными методами сжатия (LZMA, Deflate, PPMd), которые предлагает архиватор 7-Zip
  • удалять как отдельные файлы, после их использования, так и сам SFX архив
  • и многое другое...

Если Вы создаете SFX архив впервые, то можете начать с прочтения статьи "Первые шаги".

Модуль "не умеет сам" менять иконку SFX архива [image], но как это можно сделать описано здесь.

Модуль создавался с учетом пожеланий участников конференции OSZone, занимающихся автоматической установкой Windows. Поэтому, многие функции модуля ориентированы именно на автоматическую установку.

Начиная с версии 1.1 beta, модуль требует Windows 2000 или позже. Он больше не поддерживает операционные системы Windows 95, Windows 98 и Windows Me.

Работа над модулем не закончена, и он постоянно обретает новые функции, в чем Вы можете убедиться заглянув в Историю изменений. В то же время, наличие "багов" не исключается, и Вы можете сообщить о них, используя контактную информацию вверху страницы.

Благодарности:

  • Игорь Павлов (архиватор 7-Zip)
  • Вадим Стеркин aka Vadikan (помощь в создании документации и ее перевод на английский язык)
  • gora (помощь в обновлении справки)
  • Участники конференции OSZone (тестирование и ценные предложения)


Первые шаги к созданию SFX архива *

Все больше пользователей выбирают для установки приложений самораспаковывающиеся архивы (далее "SFX архивы"), а в качестве архиватора предпочитают использовать архиватор 7-Zip. Это бесплатный архиватор, распространяющийся по лицензии GNU LGPL. Если вы с ним не знакомы, то более подробную информацию сможете найти на сайте 7-zip. Его отличает более высокая степень сжатия, а с модифицированным SFX модулем доступны абсолютно незаметная (silent) установка, возможность распаковки файлов в заданную папку, добавление ярлыков в меню Пуск и на рабочий стол, а также многие другие функции.

Область применения SFX архивов не ограничивается приложениями, не требующими установки. Можно без проблем упаковать приложение, запакованное одним из распространенных инсталляторов и сконфигурировать SFX архив таким образом, что бы после распаковки была запущена установка приложения с нужными ключами.
Еще одним преимуществом SFX архивов является то, что в некоторых случаях они дают возможность не просто автоматизировать, но и полностью скрыть процесс и ход установки от конечного пользователя. Для примера рассмотрим упаковку "Adobe Reader 7.0". Хотя приложение можно устанавливать с соответствующими ключами, но только SFX архив позволяет установить приложение абсолютно незаметно.

Подготовка к созданию SFX архива

Если вы хотите просто запаковать папку с файлами, то никакой подготовки не требуется. А вот приложения иногда приходится распаковывать. В случае с "Adobe Reader 7" используется "Install Shield" с "Basic MSI", причем все это еще и запаковано в некий "FEAD Optimizer". Процесс извлечения нужных файлов выходит за рамки этой справки. Просто скажем, что все извлеченные файлы необходимо поместить в одну папку.

Теперь нужно запаковать содержимое этой папки в 7z архив. Сделать это можно через "7-Zip File Manager". Запустив его, перейдите в папку, в данном случае "Archive", в которой находятся подготовленные файлы "Adobe Reader 7", выделите все файлы и нажмите Добавить (значок в виде большого зеленого плюса).

7zip main

7zip parameters

В появившемся окне введите имя архива (здесь "Archive.7z") и выберите:

  • Формат архива: 7z
  • Уровень сжатия: Ультра
  • Метод сжатия: LZMA

Если Вы в дальнейшем планируете изменять ваш SFX архив (добавлять/ заменять/ удалять файлы) то установите:

  • Размер блока: По размеру файла

Правда последняя опция несколько уменьшит степень сжатия, но за все надо платить. Поэтому, если размер архива для Вас главное, оставьте эту опцию по умолчанию - 4GB.

Затем нажмите кнопку ОК. В результате получите файл "Archive.7z", из которого нам предстоит сделать SFX архив.

Файл конфигурации

Теперь нужно создать файл конфигурации для SFX архива. Его можно сделать в "Блокноте". В нашем случае он будет выглядеть так:

;!@Install@!UTF-8!
RunProgram="Reader7Rus.msi /qn"
GUIMode="2"
;!@InstallEnd@!

Выглядит сложно, но сейчас все прояснится.
Первая и последние строки просто обозначают начало и конец файла конфигурации.
Вторая строка - команда, которая будет выполнена после распаковки архива. Команда заключается в кавычки и помещается после параметра 'RunProgram'.
Третья строка полностью скрывает диалоговое окно распаковки.
Сохраните файл конфигурации (ОБЯЗАТЕЛЬНО в кодировке UTF-8) под именем "config.txt" в папку, где находиться "Archive.7z", и переходите к завершающей стадии создания SFX архива.

Создание SFX архива

Скопируйте модуль "7ZSD_LZMA.sfx" в папку с файлами "Archive.7z" и "config.txt".

Теперь, когда в одной папке собраны все три файла ("Archive.7z", "config.txt" и "7ZSD_LZMA.sfx"), выполните из командной строки следующую команду (порядок следования файлов в команде ОБЯЗАТЕЛЕН):

COPY /b 7ZSD_LZMA.sfx + config.txt + Archive.7z AdobeReader7.exe

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

Замена иконки 7z sfx архива.

Цель замены иконки состоит в том, чтобы иметь вашу собственную иконку, которая будет отображаться в диалоговых окнах SFX архива, панели задач, а так же и в оболочке Windows. Ниже показано отображение файла ("Установка Total Commander") с измененной иконкой из примера №6 данной справки.

Veiw TC

Veiw TC

ВАЖНО! Менять иконку можно только у НЕСЖАТЫХ UPX-ом модулей. Ниже будет описан процесс сжатия модуля.

В этом коротком руководстве мы используем "Resource Hacker" (541 кб). Его русскую версию можно найти в интернете.

Change icon 1

Загрузите, распакуйте zip архив и запустите программу "Resource Hacker". Перетащите и отпустите модуль в окно программы, или используйте комбинацию клавиш [CTRL+O], чтобы выбрать модуль. Разверните узел Icon Group, затем узел 101 и щелкните 0, как показано ниже.

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

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

Change icon 2

Change icon 3

Нажмите комбинацию клавиш [CTRL+S], чтобы сохранить модуль с измененной иконкой. По умолчанию "Resource Hacker" использует для нового файла первоначальное имя исходного файла, но переименовывает исходный файл, добавляя к его имени "_original".

Обратите внимание, что новая иконка имеет четыре формата вместо двух в исходном модуле. Вполне достаточно всего двух форматов 16х16 и 32х32 и даже одного. Остальные, перед указанными выше операциями по замене иконки, могут/должны быть удалены любым редактором иконок, т.к. только увеличивают размер модуля. Так иконка, упомянутого в примере №4 "Media Player Classic", имеет десять форматов, и ее размер составляет 139кб!!! Windows, в случае необходимости, самостоятельно "сделает" и отобразит недостающий формат (например, 48х48), как это показано на правом рисунке в начале данного раздела.

Все готово! Теперь все ваши SFX архивы, созданные с новым модулем, будут иметь выбранную Вами иконку.

Сжатие модуля

Для еще большего уменьшения размера SFX архива можно сжать модуль бесплатной утилитой UPX. Однако, SFX архивы, созданные при помощи сжатых модулей, МОГУТ вызвать ложное срабатывание некоторых антивирусных программ, о чем Вы теперь предупреждены.

Если Вы решите и сжать модуль UPX-ом, и поменять его иконку, то сжимать модуль нужно только ПОСЛЕ смены иконки. Обратная последовательность операций (сначала сжатие, а потом смена иконки) НЕДОПУСТИМА т.к. приведет к созданию неработоспособного модуля и созданных на его основе SFX архивов.

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

upx --best 7ZSD_LZMA.sfx

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

Изменение имеющегося SFX архива

Иногда возникает желание посмотреть, как устроен "чужой" SFX архив или необходимость переделать его, чтобы добавить в него новые команды или просто изменить внешний вид его диалоговых окон. Если достаточно только файла конфигурации, то его можно извлечь из SFX архива с помощью ключа '-sfxconfig'.

Более универсальным инструментом является "7z SFX Archive splitter" (ссылка на странице загрузки). Перетащите на значок "7z SFX Archive Splitter"-а нужный SFX архив (для примера все тот же "AdobeReader7.exe") или выберете его с помощью кнопки "Обзор" (на которую указывает курсор на рисунке). Затем отметьте все составные части SFX архива (или только необходимые) и щелкните кнопку OK. В папке с "AdobeReader7.exe" появятся еще 3 файла с именем SFX архива (AdobeReader7), и расширениями .sfx (SFX модуль), .txt (файл конфигурации), .7z (7z архив).

Splitter

Теперь Вы можете сделать все необходимые модификации файлов.

Если Вы захотите добавить/ заменить/ удалить файлы в 7z архив, то можете столкнуться с ошибкой вроде "Не поддерживается". Она возникает, если 7z архив является Solid (непрерывным) архивом т.е он был создан с параметром Размер блока: отличным от По размеру файла (см. выше). (В старых версиях "Менеджера файлов 7-Zip" для создания Solid архива была отдельная опция Создать Solid архив.) Здесь выход только один - извлечь все содержимое архива во временную папку, произвести все изменения в ней, а затем запаковать все обратно в 7z архив, как описано выше.

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

;!@Install@!UTF-8!
RunProgram="fm10:Reader7Rus.msi /qn"
GUIMode="2"
FinishMessage="Adobe Reader 7 установлен!"
;!@InstallEnd@!

После внесения изменений в файл конфигурации можно было бы упаковать все 3 файла снова в SFX архив, но... SFX архив может и не вывести предписанное сообщение, т.к. версия модуля, использованная для упаковки исходного архива, может быть более старой (или вообще оригинальным SFX модулем 7-Zip) и просто не поддерживать новые возможности, описанные в этой справке.

Лучше ВСЕГДА использовать последнюю версию модифицированного модуля, дабы избежать подобных ошибок. Однако есть аргументы и "за" использование "чужого" модуля:

  • Модуль уже с нужной иконкой
  • Размер модуля меньше т.к. возможно уже сжат UPX-ом
  • "Копирайты" в ресурсах модуля приведены в соответствие с конкретным содержимым SFX архива
  • Простая лень или незнание как все это сделать самостоятельно (хотя выше уже многое разъяснено)

Version

Если эти аргументы перевешивают, то хотя бы узнайте версию модуля с помощью ключа '--sfxversion'.
Обратите внимание на два знака "тире" перед ключом! В старых версиях модуля поддерживалось только такое написание ключа.

Теперь, проверив возможности этой версии модуля в истории изменений, Вы увидите, что параметр 'FinishMessage' появился только в сборке 457, а таймер для него (префикс 'fmX') вообще только в сборке 549!

Только после этого принимайте решение о возможности использования "чужого" модуля в вашем SFX архиве.

Теперь Вы знаете ВСЕ о создании 7z SFX архивов! Ну, или почти все [image].

* При написании этого раздела справки использованы материалы статьи "Создание SFX архива" с сайта OSZone, автором которой является Вадим Стеркин aka Vadikan, с его любезного согласия.


Информация о файле конфигурации

Общая информация о файле конфигурации

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

  • Файл конфигурации ДОЛЖЕН БЫТЬ сохранен в кодировке UTF-8.
  • Существуют 4 типа команд запуска программ: 'AutoInstall', 'AutoInstallX', 'RunProgram' и 'ExecuteFile'. В файле конфигурации могут одновременно присутствовать любые из этих 4-х типов и даже все, но после запуска SFX архива может выполняться только один тип команд запуска.
  • Параметры 'AutoInstall', 'AutoInstallX', 'RunProgram', 'Delete', 'SetEnvironment' и 'Shortcut' - множественные, т.е. могут присутствовать в файле конфигурации неограниченное количество раз. Указанные параметры, если их несколько в пределах своего типа, обрабатываются в той последовательности, в которой идут в файле конфигурации.
  • Команд запуска программ в каждом типе ('AutoInstall', 'AutoInstallX' и 'RunProgram') может быть несколько, обрабатываются они (в пределах каждого типа) в той последовательности, в которой указаны в файле конфигурации, при этом ожидается окончание предыдущей команды, а после этого запускается следующая.
  • 'AutoInstall' запускается нажатием кнопки "Да/OK" в окне 'BeginPrompt', с нажатой кнопкой [Shift], или из командной строки. 'AutoInstallX' запускается только из командной строки. 'ExecuteFile' и 'RunProgram' запускается только из файла конфигурации.
    Одновременное наличие 'ExecuteFile' и 'RunProgram', в файле конфигурации, возможно, но нецелесообразно, т.к. 'ExecuteFile' имеет приоритет и все 'RunProgram' будут проигнорированы. Однако 'RunProgram' множественные, не требуют дополнительных параметров для ввода ключей, и поэтому предпочтительнее.
  • Для 'ExecuteFile', если нужно указать ключи, применяется 'ExecuteParameters'. Если ключей нет, то 'ExecuteParameters' может отсутствовать.
  • Для 'RunProgram', если нужно указать путь к исполняемому файлу, может применяться 'Directory'. Путь к исполняемому файлу может быть указан непосредственно в 'RunProgram'. Параметр 'Directory' может быть только один и используется только для первого 'RunProgram', но не обязателен и может отсутствовать совсем.
  • Взаимное расположение параметров 'ExecuteFile' и 'ExecuteParameters', а также 'RunProgram' и 'Directory' значения не имеет.
  • Алгоритм выбора типа команд запуска следующий: если указано использование 'AutoInstall' ([Shift], командная строка) или 'AutoInstallX' (командная строка) - используется они. Если нет - проверяется наличие 'ExecuteFile' и, если есть, то используется он (все 'RunProgram' при этом игнорируются). Если и 'ExecuteFile' нет - проверяется 'RunProgram'.
  • Работают файловые ассоциации, т.е. можно указывать RunProgram="Setup.msi", не используя при этом StartX.exe, msistub.exe и подобные утилиты.
  • Если 'RunProgram', 'ExecuteFile', 'AutoInstall' или 'AutoInstallX' отсутствуют, и распаковка происходит во временную папку ('InstallPath' отсутствует), будет сделана попытка выполнить файл "setup.exe" (если он имеется в корне архива). "'InstallPath' отсутствует" означает - либо отсутствие параметра 'InstallPath' в файле конфигурации, либо InstallPath="", либо стирание пути, в соответствующем поле редактирования, после запуска архива. Если путь распаковки указан - попытки выполнить "setup.exe" не будет.
  • Исполняемый после распаковки файл не обязательно должен располагаться в корне архива. Последовательность поиска: сначала в папке распаковки, затем по путям, указанным в %PATH%.

ВАЖНО! Следующие двухсимвольные последовательности в "значение_параметра" заменяются односимвольными:

  • \\ = \
  • \" = "
  • \n = перевод строки
  • \t = табуляция

Если надо указать обратный слеш (\) (например, в путях или тексте диалога), НЕОБХОДИМО использовать ДВОЙНОЙ (\\), а если "значение_параметра" или текст диалога содержит кавычки ("), НЕОБХОДИМО перед ними использовать обратный слеш (\") (правило "лидирующего слеша").

В момент выполнения модулем своей работы, помимо основных переменных среды (%SYSTEMDRIVE%, %PROGRAMFILES% и т.д.), доступны переменные, определяемые пользователем в параметрах 'SetEnvironment', а также дополнительные переменные, которые указывают на расположение на диске следующих папок:

  • %CommonDesktop% - рабочий стол ДЛЯ ВСЕХ пользователей
  • %CommonDocuments% - ОБЩИЕ документы
  • %MyDocuments% - "Мои документы" ТЕКУЩЕГО пользователя (она же %MyDocs%)
  • %UserDesktop% - рабочий стол ТЕКУЩЕГО пользователя

Перечисленные выше переменные могут использоваться как в параметрах модуля, так и в других программах (.cmd, .bat файлах) запущенных из модуля.

Кроме этого можно использовать (только в параметрах самого модуля, но не в других программах, запущенных из модуля) следующие переменные модуля:

  • %%S - полный путь к файлу SFX архива
  • %%T - полный путь распаковки

Все перечисленные переменные разбираются и подставляются в следующих параметрах:

  • 'AutoInstall'
  • 'AutoInstallX'
  • 'Delete'
  • 'Directory'
  • 'ExecuteFile'
  • 'InstallPath' (за исключением %%T, а также переменных, определенных параметрами 'SetEnvironment', если в них используется %%T)
  • 'RunProgram'
  • 'string' параметра 'SetEnvironment'

Только переменные модуля %CommonDesktop%, %CommonDocuments%, %MyDocuments%, %MyDocs%, %UserDesktop%, %%T и %%S, а также переменные, определяемые пользователем в параметрах 'SetEnvironment', разбираются и подставляются (будут подставлены ЗНАЧЕНИЯ этих переменных) в следующих строках параметра 'Shortcut':

  • 'icon_file'
  • 'src_file_path'

В остальных параметрах переменные среды и переменные модуля не используются и подставляются как обычные строки (будут подставлены ИМЕНА этих переменных).

Модуль также поддерживает относительные пути в следующих параметрах и ключах:

  • 'AutoInstall', 'AutoInstallX', 'Directory', 'ExecuteFile', 'RunProgram' - относительно папки, в которую произведена распаковка
  • 'InstallPath', '-sfxconfig' - относительно папки программы, из которой произведен запуск SFX архива
    ВНИМАНИЕ! Это не обязательно папка, в которой расположен SFX архив. Если SFX архив запущен из другой программы (.bat, .cmd, и т.д.), то текущей будет папка этой программы.
  • 'Delete' - относительно папки, в которой расположен SFX архив

Для 'RunProgram' и всех вариантов 'AutoInstall'-ов МОЖНО/НУЖНО заключать путь и имя исполняемой программы в дополнительные кавычки.
МОЖНО, даже если имя и путь к исполняемому файлу НЕ СОДЕРЖАТ пробелов, НУЖНО, если СОДЕРЖАТ пробелы, т.к. имя и путь к исполняемому файлу формируются ПОСЛЕ разбора переменных среды. Например:

RunProgram="nowait:%ProgramFiles%\\test.exe /s"

В НАПИСАНИИ имя и путь к исполняемому файлу не содержит пробелов, но после подстановки оно МОЖЕТ содержать пробелы. Поэтому лучше всегда писать так:

RunProgram="nowait:\"%ProgramFiles%\\test.exe\" /s"

Префиксы и ключи исполняемой программы в дополнительные кавычки НЕ ВКЛЮЧАЮТСЯ.

Для 'ExecuteFile' необязательны дополнительные кавычки даже для имен с пробелами (т.к. в нем не может быть ключей командной строки). Т.е предыдущий пример может быть записан так:

ExecuteFile="nowait:%ProgramFiles%\\test.exe"
ExecuteParameters="/s"

Многострочный текст допустим в диалогах следующих параметров:

  • 'BeginPrompt'
  • 'CancelPrompt'
  • 'ExtractDialogText'
  • 'ExtractPathText'
  • 'FinishMessage'
  • 'HelpText'

В тексте допустимы любые символы. Слеши (\) и кавычки (") попадают под правило "лидирующего слеша" (см. выше), т.е. написав

HelpText="Так пишите (в скобках \"и кавычках\")\nА так пишите путь C:\\Windows\nА вот так используйте табуляцию\nПоз. 1\tПоз. 2\tПоз. 3\tПоз. 4"

получим следующее диалоговое окно:

Размеры окна диалога зависят от длины строк и их количества, и будут автоматически изменяться. Но помните, если Вы переусердствуете, окно может выйти за пределы экрана и полосы прокрутки не появятся [image].

Прервать работу SFX архива можно:

  • Нажатием кнопки "Нет" или "Отмена" в тех диалогах, где они предусмотрены
  • Нажатием кнопки "Закрыть" (которая в правом верхнем углу окна) за исключением диалога распаковки, если кнопка блокирована параметром 'GUIMode' или ключом '-gmX' равным 1
  • Нажатием кнопки 'ExtractCancelText' в диалоге распаковки, если она не скрыта параметром 'GUIMode' или ключом '-gmX' равным 1
  • Нажатием клавиши [Esc] на клавиатуре (если параметр 'GUIMode' или ключ '-gmX' равен 1, то в диалоге распаковки не действует)

При указанных выше действиях будет выведен диалог подтверждения отмены распаковки/установки, если он разрешен флагом 256 параметра 'GUIFlags'. Текст диалога отмены можно назначить параметром 'CancelPrompt'. Этот диалог НЕ будет выводиться в окне сообщения об ошибке и в окнах определяемых параметрами 'FinishMessage' и 'HelpText'.


Параметры файла конфигурации

Имя_параметра="значение_параметра"

Описание параметра и допустимых значений

Распаковка / исполнение (команды и пути)

AutoInstall="command_auto_install"

Команда для исполнения (множественная). Есть два режима - обычный, запускаемый из 'RunProgram' или 'ExecuteFile', и автоматический, запускаемый из 'AutoInstall'.

АВТОМАТИЧЕСКИЙ режим установки может быть вызван двумя способами:

  • Указанием в командной строке ключа '-ai'
  • Нажатием кнопки "Да/OK" в окне 'BeginPrompt' (если таковое указано) ВМЕСТЕ С КЛАВИШЕЙ [Shift]

Без указанных выше манипуляций используется 'RunProgram' или 'ExecuteFile'.

Допустимы переменные, обрабатываемые модулем, а также относительные пути. Написание аналогично 'RunProgram'

AutoInstallX="command_auto_install"

Где X - номер варианта (от 0 до 9). Команда для исполнения (множественная).
Вы можете указать в файле конфигурации до 10-ти вариантов автоматических установок, которые можно выбрать ТОЛЬКО из командной строки, указав ключ '-aiX'.

Если предполагается использовать несколько вариантов автоматической установки, номера 'AutoInstallX'-ам можно присваивать любые, даже не по порядку. При этом каждый из 'AutoInstallX' множественный. Например, 'AutoInstall3' может быть сколько угодно, так же как и 'AutoInstall7' или 'AutoInstall0'.

Допустимы переменные, обрабатываемые модулем, а также относительные пути. Написание аналогично 'RunProgram'

Delete="file_or_folder_name"

Команда удаляет указанный файл или папку ПОСЛЕ установки (множественная).
Если указанное имя является папкой, то она будет удалена вместе со всем содержимым.

ВНИМАНИЕ! Будьте осторожны, чтобы не указать что-нибудь вроде "C:\Windows" [image].

Допустимы переменные, обрабатываемые модулем, а также относительные пути. Текущей папкой при выполнении команд 'Delete' является папка, в которой находится SFX архив.

Directory="path_to_command"

Путь к папке команды исполнения 'RunProgram' (не путать с текущей папкой). Параметр оригинального SFX модуля 7-Zip.

Может использоваться только для первого 'RunProgram'. Допустимы переменные, обрабатываемые модулем, а также относительные пути. Параметр необязателен т.к. путь и команду можно указать прямо в 'RunProgram'. Например:

RunProgram="notepad.exe"
Directory="C:\\Windows\\system32\\"

равнозначны

RunProgram="C:\\Windows\\system32\\notepad.exe"

ExecuteFile="command_for_executing"

Команда для исполнения. Параметр оригинального SFX модуля 7-Zip.

Допустимы переменные, обрабатываемые модулем, а также относительные пути. Написание аналогично 'RunProgram' за исключением ключей для исполняемого файла, которых в ней быть не может. В случае необходимости ключи для исполняемого файла подставляются в 'ExecuteParameters'.

ExecuteParameters="keys_command"

Ключи для команды исполнения 'ExecuteFile'. Параметр оригинального SFX модуля 7-Zip.

Параметр 'ExecuteParameters' необязателен, он нужен только в том случае, если необходимо передать что-то в командной строке для 'ExecuteFile'.

InstallPath="path_to_extract"

Указывает использовать ОПРЕДЕЛЕННЫЙ путь для распаковки. Если 'InstallPath' отсутствует (имеется в виду отсутствие параметра 'InstallPath' в файле конфигурации, или InstallPath="", или стирание пути, в соответствующем поле редактирования, после запуска архива), то распаковка происходит во ВРЕМЕННУЮ папку, которая будет УДАЛЕНА после распаковки и выполнения всех команд установки.

Допустимы переменные, обрабатываемые модулем (за исключением %%T, а также переменных, определенных параметрами 'SetEnvironment', если в них используется %%T). ОБЯЗАТЕЛЬНО используйте ДВОЙНЫЕ обратные слеши в путях. Например:

InstallPath="C:\\Windows\\system32\\test"
InstallPath="%PROGRAMFILES%\\test"

Допустимы относительные пути. Текущей папкой будет папка программы, из которой произведен запуск SFX архива. Например:

InstallPath="test"

создаст папку с именем "test" в папке программы из которой, произведен запуск SFX архива и распаковка произойдет в нее,

InstallPath="."

произведет распаковку прямо в папку программы, из которой произведен запуск SFX архива, а

InstallPath="%%S"

произведет распаковку прямо в папку, где находится SFX архив.

Если создать папку или распаковать архив на носитель (например, CD-ROM) не удастся - будет выведена ошибка.

Если нужно просто распаковать архив, 'InstallPath' должен присутствовать в файле конфигурации. При этом и 'RunProgram', и 'ExecuteFile' должны отсутствовать, а 'AutoInstall' и 'AutoInstallX' либо отсутствовать, либо присутствовать, но не должны быть запущены ([Shift]-ом или из командной строки). В противном случае будет запущен исполняемый файл из 'RunProgram', 'ExecuteFile', 'AutoInstall' или 'AutoInstallX'. Папка установки с распакованными данными в любом случае НЕ УДАЛЯЕТСЯ.

OverwriteMode="x"

Где x = 0, 1 или 2 (обязательно в кавычках)

  • 0 - перезаписывать все файлы (режим по умолчанию)
  • 1 - не перезаписывать существующие файлы
  • 2 - перезаписывать только те файлы, которые старее, чем в архиве/установке

Данный параметр может быть переопределен из командной строки ключом '-omX'.

RunProgram="command_executing"

Команда для исполнения (множественная). Параметр оригинального SFX модуля 7-Zip.

Содержит имя исполняемого файла. Дополнительно может содержать: путь к исполняемому файлу (допустимы переменные, обрабатываемые модулем, а также относительные пути), префиксы и ключи для исполняемого файла.
Например:

RunProgram="notepad.exe"
RunProgram="C:\\Windows\\system32\\notepad.exe"
RunProgram="fm0:nowait:7z_RU.chm"
RunProgram="\"%%T\\Reader7Rus.msi\" /qn"
RunProgram="hidcon:fm0:\"%%S\\install.cmd\" /Q"

В двух последних случаях, при наличии ключей для исполняемого файла, путь и имя исполняемой программы заключаются в дополнительные кавычки. Префиксы и ключи для исполняемого файла при этом в дополнительные кавычки не включаются.

SelfDelete="1"

Удаляет SFX архив по окончании процесса.
В файле конфигурации допустимое значение только "1", другие игнорируются. Данный параметр работает ТОЛЬКО В ТОМ СЛУЧАЕ, если запуск SFX архива был произведен с жесткого диска. Для остальных устройств (CD-ROM, дискеты, Flash, сетевые диски и т.д.) - игнорируется.

Данный параметр может быть переопределен из командной строки ключом '-sdX'.

SetEnvironment="variable=string"

Команда создания переменной (множественная).

'variable' - имя переменной, которое не должно совпадать с именами переменных, обрабатываемых модулем. Имена переменных модуля НЕ зависят от регистра.

'string' - значение переменной. Допустимы переменные, обрабатываемые модулем, которые могут быть и частью 'string'.

Примеры написания:

SetEnvironment="Var1=E:\\totalcmd"
SetEnvironment="Var2=E:\\totalcmd\\"
SetEnvironment="Var3=\"E:\\totalcmd\""
SetEnvironment="Var4=\"E:\\totalcmd\\\""
SetEnvironment="TC=\"%ProgramFiles%\\totalcmd\""
SetEnvironment="Var5=%%S\\TOOLS\\Total Commander"
SetEnvironment="PathTC=%ProgramFiles%\\totalcmd"
SetEnvironment="Var7=%PathTC%\\"
SetEnvironment="Var8=\"%PathTC%\""
SetEnvironment="Timer=30"

После создания переменной ее можно будет использовать так, например:

AutoInstall="hidcon:cmd /c copy rdm.txt %Var2%DOC"
RunProgram="cmd /c xcopy \"%%T\" %TC% /s /e /i /y"
RunProgram="fm%timer%:hidcon:cmd /c echo"
AutoInstall2="cmd /c xcopy Lang \"%Var8%Lang\" /s"
AutoInstall2="hidcon:cmd /c copy ReadMe.txt %Var9%"
AutoInstall2="hidcon:cmd /c copy Hist.txt %VAR9%"
AutoInstall2="hidcon:cmd /c copy Keyb.txt %var9%"

Созданные переменные могут использоваться как в параметрах модуля, так и в других программах (.cmd, .bat файлах) запущенных из модуля.

Shortcut="type,{src_file_path},
{command_line_for_file},
{folder_for_shortcut},{decription},
{shortcut_name},{working_directory},
{icon_file},{icon_index}"

Команда создания ярлыка (множественная).

Каждый параметр, исключая 'type', должен быть заключен в фигурные скобки, параметры разделяются запятыми. Обязательными параметрами являются только 'type' и 'src_file_path'. Если какой-то параметр ярлыка не нужен - используйте пустые фигурные скобки '{}'. Неиспользуемые параметры, после ПОСЛЕДНЕГО ИСПОЛЬЗУЕМОГО, можно не указывать.

Пути в параметрах 'src_file_path' и 'icon_file' заключать в кавычки не надо, но не забывайте про двойные обратные слеши.

Если вам потребуется указать где-нибудь фигурную скобку (например, в description) используйте двойную, т.е. {"Это описание со {{скобками}}"} даст результат "Это описание со {скобками}".

'type' одно или двухсимвольное поле, которое может принимать следующие значения:

  • D - Создать ярлык на Рабочем столе
  • S - Создать ярлык в меню кнопки "Пуск"
  • P - Создать ярлык в меню "Пуск -> Программы"
  • T - Создать ярлык в папке "Автозагрузка"

Ярлыки создаются ДЛЯ ВСЕХ пользователей. Для того, чтобы создать ярлык для текущего пользователя, к указанным символам надо добавить 'u', т.е. Shortcut="Du,{cmd.exe}" создаст ярлык на Рабочем столе текущего пользователя.

'src_file_path' - имя (или путь и имя) файла для которого надо создать ярлык.

'command_line_for_file' - ключи командной строки для запуска этого файла.

'folder_for_shortcut' - папка, в которой будет создан ярлык, т.е. Shortcut="Pu,{cmd.exe},{/?},{test}" создаст в меню "Пуск -> Программы" текущего пользователя папку "test", а в ней ярлык с именем "cmd.lnk" и параметрами запуска "cmd.exe /?".

'description' - описание ярлыка.

'shortcut_name' - имя ярлыка БЕЗ РАСШИРЕНИЯ. Если не указано - используется имя исходного файла, к которому добавляется .lnk. Т.е. Shortcut="P,{cmd.exe},{/?},{test},{Run cmd},{Run Command Line Help}" создаст в меню "Пуск -> Программы" для всех пользователей папку "test", а в ней ярлык с именем "Run Command Line Help.lnk" и параметрами запуска "cmd.exe /?"

'working_directory' - рабочая папка программы (т.е. текущая для нее при запуске). В свойствах ярлыка это параметр "Рабочая папка".

'icon_file' - путь и имя файла, в котором содержится иконка для ярлыка.

'icon_index' - номер иконки в файле, указанном в 'icon_file'.

Внешний вид

ExtractDialogWidth="x"

МИНИМАЛЬНАЯ ширина окна диалога процесса распаковки, где "x" - ширина окна в пикселях.

ExtractPathWidth="x"

МИНИМАЛЬНАЯ ширина окон диалогов для ввода пути распаковки (отдельный 'ExtractPath' и совмещенный 'BeginPrompt' + 'ExtractPath'), где "x" - ширина окна в пикселях. Если после форматирования текста ширина окна получается меньше этого значения, оно расширяется до этой величины.

GUIFlags="x"

Набор флагов, изменяющий внешний вид диалоговых окон, где "x" число, равное сумме числовых значений флагов, либо выражение "2+4+128+1024". Порядок числовых значений в выражении может быть любой. Числовые значения определяют следующее:

  • 1 - отображать процент распаковки в заголовке окна процесса распаковки справа (по умолчанию - слева)
  • 2 - не отображать процент распаковки в заголовке окна процесса распаковки
  • 4 - отображать процент распаковки под индикатором процесса (ProgressBar'ом)
  • 8 - использовать стили (схемы) Windows XP
  • 16 - использовать жирный шрифт для процента распаковки (действует только, если он отображается под индикатором процесса (ProgressBar'ом), т.е. флаг 4 присутствует)
  • 32 - отображать иконку в окне процесса распаковки
  • 64 - использовать для указание пути распаковки совмещенный диалог 'BeginPrompt' + 'ExtractPath' (данный флаг имеет приоритет над флагом 128 и флагом 1024)
  • 128 - использовать для указания пути распаковки отдельный диалог 'ExtractPath' (действует только, если флаг 64 отсутствует; данный флаг имеет приоритет над флагом 1024)
  • 256 - подтверждать отмену установки/распаковки (текст диалога отмены можно назначить параметром 'CancelPrompt')
  • 512 - не отображать иконку в заголовке всех окон и по [Alt+Tab]
  • 1024 - отображать иконку в окне указания пути распаковки (действует только в отдельном диалоге 'ExtractPath', т.е. флаг 64 отсутствует, а флаг 128 присутствует)
  • 2048 - отображать иконку модуля в диалоге 'BeginPrompt' и в совмещенном диалоге 'BeginPrompt' + 'ExtractPath', вместо иконки со знаком вопроса; при отсутствии параметра 'BeginPrompt' флаг игнорируется
  • 4096 - изменить в диалоге 'BeginPrompt' и в совмещенном диалоге 'BeginPrompt' + 'ExtractPath' названия кнопок: вместо "Да"-"Нет" будет "ОК"-"Отмена"; при отсутствии параметра 'BeginPrompt' флаг игнорируется

Например, чтобы не отображать проценты в заголовке, но отображать под индикатором, использовать указание пути распаковки в отдельном диалоге и отображать в нем иконку, нужно указать GUIFlags="2+4+128+1024" или GUIFlags="1158" (2+4+128+1024=1158).

Попытки сбросить неустановленный флаг или добавить уже установленный флаг - ИГНОРИРУЮТСЯ.
Т.е., если пользователь укажет (по ошибке):
GUIFlags="16...+16", то модуль +16 проигнорирует, т.к. этот флаг УЖЕ УСТАНОВЛЕН и не сделает GUIFlags="32...", а при
GUIFlags="137+1" ("1+8+128+1") не сделает GUIFlags="138", а проигнорирует +1 т.к. флаг 1 УЖЕ УСТАНОВЛЕН

Данный параметр может быть переопределен из командной строки ключом '-gfX'.

GUIMode="x"

Где x = 1 или 2 (обязательно в кавычках, т.е. GUIMode="2")

  • 1 - отображать процесс распаковки, но скрыть кнопку "Отмена", блокировать кнопку "Закрыть" (которая в правом верхнем углу окна) и клавишу [Esc] на клавиатуре
  • 2 - не отображать диалог процесса распаковки (т.е. "тихий" режим)

Данный параметр может быть переопределен из командной строки ключом '-gmX'.

Progress="x"

Где x = yes или no (обязательно в кавычках, т.е. Progress="no") Параметр оригинального SFX модуля 7-Zip.

Progress="no" равнозначен GUIMode="2". Если в файле конфигурации вместе с 'Progress' будет указан 'GUIMode', или '-gmX' в командной строке, то 'Progress' будет проигнорирован, т.к. 'GUIMode', и '-gmX' имеют приоритет.

Текст

Title="new_title"

Изменяет заголовок (по умолчанию "7-Zip SFX") следующих окон: 'BeginPrompt', 'CancelPrompt', 'FinishMessage' и 'HelpText'. Параметр оригинального SFX модуля 7-Zip.

Если параметр отсутствует, то вместо 'Title' везде будет выводиться имя SFX архива без расширения. Если имя SFX архива "не удалось определить", то будет выводиться значение по умолчанию.

BeginPrompt="some_text"

Вывод диалога с сообщением при запуске SFX архива. Параметр оригинального SFX модуля 7-Zip.

В зависимости от флага 64 параметра 'GUIFlags' может принимать разный вид.
Здесь приведен рисунок, если флаг 64 отсутствует.

Если флаг 64 присутствует - диалог 'BeginPrompt' объединен с полем редактирования пути распаковки как показано на рисунке ниже.

Подавляют вывод окна (если оно указано) ключи командной строки: '-ai', '-aiX' и '-y'.

ExtractPathText="some_text"

BeginPrompt + ExtractPath

Сообщение над полем редактирования пути распаковки (по умолчанию "Путь распаковки:").

На рисунке показан совмещенный диалог 'BeginPrompt' + 'ExtractPath' (отсутствует флаг 128 параметра 'GUIFlags').

Путь в поле редактирования берется из 'InstallPath', но он может быть изменен пользователем. Отсутствие пути (имеется в виду отсутствие параметра 'InstallPath' в файле конфигурации, или InstallPath="", или стирание пути, в соответствующем поле редактирования, после запуска архива) повлечет распаковку во временную папку и удаление распакованных файлов по окончании работы.

ExtractPathTitle="title_text"

Изменяет заголовок диалога указания пути распаковки (по умолчанию "Путь распаковки"). Используется только в отдельном диалоге 'ExtractPath' (показанном на рисунке) для указания пути распаковки (флаг 128 параметра 'GUIFlags'). Если флаг 128 отсутствует, параметр 'ExtractPathTitle' игнорируется.
Для совмещенного диалога (флаг 64 параметра 'GUIFlags') значение берется из 'Title' как показано на рисунке выше.
Флаг 1024 параметра 'GUIFlags' заставляет отображать иконку в диалоге указания пути распаковки, как показано на рисунке. Действует только вместе с флагом 128, если флаг 128 отсутствует, то флаг 1024 игнорируется.
Путь в поле редактирования берется из 'InstallPath', но он может быть изменен пользователем.

'ExtractPath' не является параметром модуля, а используется в справке только для обозначения диалога, показанного на рисунке.

ExtractTitle="new_title"

Изменяет заголовок окна распаковки (по умолчанию "Распаковка"). Можно указать что-нибудь вроде "Подготовка к установке".
Флаг 32 параметра 'GUIFlags' заставляет отображать иконку в диалоге распаковки, как показано на рисунке.
Параметр GUIMode="1" скроет кнопку "Отмена" и заблокирует кнопку "Закрыть" (в правом верхнем углу окна).
Параметр GUIMode="2" полностью скроет окно распаковки.

ExtractDialogText="text"

Выводит указанный текст НАД индикатором процесса распаковки (ProgressBar'ом). Если не указан - текста просто не будет.

ExtractCancelText="button_text"

Изменяет текст кнопки (по умолчанию "Отмена") в диалоге распаковки на указанный.
Параметр GUIMode="1" скроет эту кнопку.

CancelPrompt="cancel_dialog_text"

Выводит диалог с текстом (по умолчанию "Вы действительно хотите отменить установку?") для подтверждения отмены (из любого диалога). Если флаг 256 параметра 'GUIFlags' отсутствует параметр 'CancelPrompt' игнорируется и окно не выводиться. В противном случае окно выводиться с тестом указанным в 'CancelPrompt', а если 'CancelPrompt' отсутствует, используется текст по умолчанию.

Подавить вывод окна, если указано, можно из командной строки ключом '-y'.

ErrorTitle="title_for_errors_windows"

Заголовок окна сообщения об ошибке, надеюсь, Вы его ни когда не увидите [image], (по умолчанию: "7-Zip SFX: ошибка").

Если параметр отсутствует, то вместо 'ErrorTitle' в окне сообщения об ошибке будет выводиться имя SFX архива (без расширения) с добавление ": ошибка". Если имя SFX архива "не удалось определить", то будет выводиться значение по умолчанию.
Текст сообщений об ошибках [image] определяет сам модуль.

FinishMessage="finish_message"

После всех операций (распаковка, запуск программ, удаление файлов, создание ярлыков и т.д.) будет выведен диалог с текстом, содержащимся в 'FinishMessage'. При любой автоматической установке ('AutoInstall' или 'AutoInstallX') вывод диалога блокируется.

Можно указать принудительное отображение 'FinishMessage' из командной строки ключом '-fm1' или '-fmN'. Подавить вывод окна можно ключами '-fm0' или '-y'.
Так же для конкретного варианта (например, определенного 'AutoInstall', 'RunProgram' или 'ExecuteFile') можно указать то же самое префиксом 'fmX'.

AutoInstall="hidcon:fm1:install.bat"

отобразит сообщение, хотя это и автоматическая установка, а

RunProgram="nowait:fm0:setup.exe"

наоборот - запретит вывод 'FinishMessage'.

Ключи командной строки имеют приоритет.

Подставив в ключ '-fmX' или в префикс 'fmX' вместо X число 2...999, можно определить время отображения окна 'FinishMessage'. Обратный отсчет времени отображается на кнопке "OK", и по его истечении окно закрывается и работа модуля прекращается.

HelpText="some_text"

Позволяет указать справочный текст, который можно вызвать, указав в командной строке ключ '-h' или '-?'.

Будет выведен диалог с текстом, содержащимся в 'HelpText' и кнопкой "OK". После закрытия данного диалога работа модуля будет прервана (т.е. ничего не будет распаковываться и устанавливаться).

Здесь можно указать тонкости установки данного SFX архива, ключи установки или все что захотите.


Префиксы команд запуска

  • Любые префиксы используются только в командах запуска ('RunProgram', 'ExecuteFile', 'AutoInstall' или 'AutoInstallX').
  • Префиксов в любой команде запуска может быть несколько и их можно указывать в любой последовательности.
  • Префиксы НЕ зависят от регистра.
  • Префиксы отделяются от команды и друг от друга двоеточием (:). Например:
RunProgram="hidcon:fm0:nowait:install.cmd"
RunProgram="NoWait:HidCon:fM0:install.cmd"
  • Если используются префиксы, а имя и путь к исполняемому файлу ДОЛЖНЫ БЫТЬ ЗАКЛЮЧЕНЫ в дополнительные кавычки, то префиксы в дополнительные кавычки НЕ ВКЛЮЧАЮТСЯ. Например:
RunProgram="nowait:hidcon:\"%ProgramFiles%\\install.cmd\""

Префикс

Описание

fmX

Режим/время отображения окна 'FinishMessage', где X:

  • 0 - не отображать окно
  • 1 - отображать окно
  • N (N= 2...999) - отображать окно в течении N секунд; обратный отсчет времени отображается на кнопке "OK", и по его истечении окно 'FinishMessage' закрывается и работа модуля прекращается

Можно указать принудительное отображение ('fm1','fmN') или блокирование ('fm0') окна 'FinishMessage' (если конечно 'FinishMessage' имеется в файле конфигурации) указанием соответствующего префикса перед командой, которую хотите выполнить. Например:

RunProgram="fm0:setup.exe"
AutoInstall="fm1:setup.exe"
AutoInstall3="fm20:setup.exe"

выполнит "setup.exe" и соответственно скроет окно 'FinishMessage' в первом случае (обычный режим), но покажет во втором и третьем (автоматический режим), хотя автоматический режим ('AutoInstall' или 'AutoInstallX') подавляет вывод окна 'FinishMessage' по умолчанию.

При множественных 'RunProgram' и 'AutoInstall'-ах используются только первый префикс 'fmX', встретившийся внутри исполняемого типа параметра ('RunProgram', 'AutoInstall' и 'AutoInstallX'). Он необязательно должен быть в первой строке внутри исполняемого типа. Например:

RunProgram="setup1.exe"
RunProgram="fm0:setup2.exe"
RunProgram="fm1:setup3.exe"

будет использован 'fm0', а 'fm1' игнорируется.

При отсутствии 'FinishMessage' в файле конфигурации - все префиксы 'fmX' игнорируются.

Данные префиксы могут быть ПЕРЕОПРЕДЕЛЕНЫ ключом '-fmX' в командной строке, которая имеет приоритет.

hidcon

Скрывает консольные окна. Например:

RunProgram="hidcon:install.cmd"

выполнит "install.cmd" и полностью скроет его консольное окно.

nowait

Заставляет не дожидаться окончания выполнения команды запуска.
По умолчанию команды запуска, в пределах каждого типа, обрабатываются в той последовательности, в которой указаны в файле конфигурации, при этом ожидается окончание предыдущей команды, а после этого запускается следующая. В случае присутствия префикса 'nowait', последующие команды, указанные в файле конфигурации, будут выполнены немедленно (запуск следующей программы, удаление каталогов, создание ярлыков и т.д.)

При распаковке во временную папку префикс 'nowait' ИГНОРИРУЕТСЯ.


Ключи командной строки

  • Модуль поддерживает ключи командной строки. Ключи модуля НЕ зависят от регистра. Их может быть несколько, и записываются они последовательно. Например, так "sfx.exe -ai -fm1 -gf+256-8" или так "sfx.exe /ai /fm1 /gf+256-8" и даже так "sfx.exe /Ai -fM1 /GF+256-8".
  • Модуль может передать ключи исполняемой программе внутри архива. Если нужно передать исполняемой программе ключи, используемые самим модулем, необходимо перед ними использовать ключ '-!'.
  • Модуль ведет поиск "своих" (перечисленных на этой странице) ключей в командной строке до первого неизвестного ключа. После этого все остальное (ключи, параметры) передается в вызываемую программу. Например: в файле конфигурации RunProgram="some_program.exe" после запуска SFX архива: "sfx.exe -gm2 /key=1 /silent" выполнится: "some_program.exe /key=1 /silent". В то же время, модуль воспримет ключ '-gm2' и сделает "тихую" распаковку. В этом случае применять ключ '-!' не обязательно.
  • Все ключи, передаваемые исполняемой программе внутри архива, будут переданы ТОЛЬКО первой программе, исполняемого в данный момент типа команд запуска. Например, в файле конфигурации есть строки:
    RunProgram="\"%ProgramFiles%\\Setup.exe\""
RunProgram="\"regedit\" settings.reg"
AutoInstall="\"%ProgramFiles%\\Setup.exe\""
AutoInstall="\"regedit\" settings.reg"

    После запуска SFX архива "sfx.exe -gm2 -s -y", ключи "-s -y" будут переданы в первую строку, и выполнено

    RunProgram="\"%ProgramFiles%\\Setup.exe\" -s -y"
RunProgram="\"edit\" settings.reg".

    Если же этот SFX архив запустить так, "sfx.exe -ai -s -y", то ключи "-s -y" будут переданы в третью строку, и выполнено

    AutoInstall="\"%ProgramFiles%\\Setup.exe\" -s -y"
AutoInstall="\"edit\" settings.reg"

Ключ

Описание

-!

Прерывает разбор командной строки. Все ключи, указанные после него, могут быть переданы (как есть) только в первую выполняемую программу ('RunProgram', 'ExecuteFile', 'AutoInstall' или 'AutoInstallX'). Может понадобиться, если необходимо указать ключ, который используется и в SFX модуле и в выполняемой программе.
Например, в файле конфигурации RunProgram="setup.exe -s", а необходимо выполнить "setup.exe -s -y" (ключ '-y' используется самим модулем). Чтобы передать его в 'RunProgram' нужно выполнить "sfx.exe -gm2 -! -y". Ключ '-y' будет проигнорирован модулем, передан в командную строку и выполнится "setup.exe -s -y". В то же время, модуль воспримет ключ '-gm2' и сделает "тихую" распаковку.

-ai

Автоматическая установка.

Указывает использовать параметр 'AutoInstall' вместо 'RunProgram', 'ExecuteFile' или 'AutoInstallX' из файла конфигурации. Если 'AutoInstall' не указан - данный ключ игнорируется.

Ключ автоматически подавляет вывод диалога 'BeginPrompt', т.е. можно не указывать ключ '-y'.

-aiX

Автоматическая установка определенного варианта. X может принимать значения от 0 до 9. Для вызываемого варианта должна быть соответствующая строка в файле конфигурации (параметр 'AutoInstallX'), т.е., если указать '-ai7', то в файле конфигурации должна присутствовать строка вида AutoInstall7="auto_install.exe params for scenario 7", иначе будет выведено сообщение об ошибке.

Пакетный режим автоматических установок также возможен. После '-ai' указываются номера автоматических установок, например, если выполнить "sfx.exe -ai372", то будут выполнены последовательно 'AutoInstall3', затем 'AutoInstall7', а затем 'AutoInstall2'. Если в какой-то из 'AutoInstallX' установок несколько команд - они выполнятся последовательно, и только затем выполнение перейдет к следующей указанной 'AutoInstallX'.
Для каждого вызываемого варианта 'AutoInstallX', цифры после '-ai', должна быть соответствующая строка в файле конфигурации (параметр 'AutoInstallX'). Таким образом, если указать '-ai37', в файле конфигурации должны присутствовать хотя бы по одной строке вида AutoInstall3="auto_install3.exe switches for program3" и AutoInstall7="auto_install7.exe switches for program7", иначе будет выведено сообщение об ошибке.

Ключ автоматически подавляет вывод диалога 'BeginPrompt', т.е. можно не указывать ключ '-y'.

-fmX

Режим/время отображения окна 'FinishMessage', где X:

  • 0 - не отображать окно
  • 1 - отображать окно
  • N (N= 2...999) - отображать окно в течении N секунд; обратный отсчет времени отображается на кнопке "OK", и по его истечении окно 'FinishMessage' закрывается и работа модуля прекращается

Ключ ПЕРЕОПРЕДЕЛЯЕТ префиксы 'fmX' в файле конфигурации. Командная строка имеет приоритет.
При отсутствии 'FinishMessage' в файле конфигурации ключи '-fmX' игнорируются.

-gfX

Режим отображения диалоговых окон.
Из командной строки можно ИЗМЕНИТЬ отдельные флаги в 'GUIFlags' файла конфигурации:

  • -gf-8 - уберет стили ХР (минус перед восьмеркой), остальные возьмет из файла конфигурации
  • -gf+256 - добавит подтверждение отмены установки, остальные возьмет из файла конфигурации
  • -gf-8+256 или
  • -gf+256-8 - уберет стили ХР, добавит подтверждение отмены установки, а остальные возьмет из файла конфигурации

Попытки сбросить неустановленный флаг или добавить уже установленный флаг - ИГНОРИРУЮТСЯ.
Например, если в файле конфигурации было GUIFlags="136" (8+128), а запустили SFX архив с ключом "-gf-8+128-256+1024", то это только сбросит флаг 8 и добавит флаг 1024, а остальное проигнорирует (в 'GUIFlags' флаг 128 уже установлен, а флаг 256 отсутствует и сбрасывать нечего). В результате SFX архив отработает с GUIFlags="128+1024".

Если не указывать предваряющий знак (+ или -), то можно полностью ЗАМЕНИТЬ 'GUIFlags' файла конфигурации:

  • -gf64+8 - 'GUIFlags' будет равен "72", независимо от того, что указано в файле конфигурации.

Ключ ИЗМЕНЯЕТ параметр 'GUIFlags' в файле конфигурации.

-gmX

Режим отображения распаковки, где X:

  • 0 - стандартный режим - родной режим 7-Zip, т.е. с кнопками "Отмена" и "Закрыть" (которая в правом верхнем углу окна)
  • 1 - отображать процесс распаковки, но скрыть кнопку "Отмена", блокировать кнопку "Закрыть" (которая в правом верхнем углу окна) и клавишу [Esc] на клавиатуре
  • 2 - не отображать диалога процесса распаковки (т.е. "тихий" режим)

Ключ ПЕРЕОПРЕДЕЛЯЕТ параметр 'GUIMode' в файле конфигурации. Ключ не подавляет вывод диалога 'BeginPrompt', для этого нужно использовать ключи '-ai', '-aiX' или '-y'.

-h или -?

Выводит диалог с текстом, содержащимся в 'HelpText', и кнопкой 'OK'. Если 'HelpText' в файле конфигурации отсутствует, будет выведено сообщение: (Параметр "HelpText" не указан в файле конфигурации)

После закрытия данного диалога работа модуля будет прервана (т.е. ничего не будет распаковываться/устанавливаться).

-nr

Запрещает запуск программ, указанных в 'RunProgram', 'ExecuteFile', 'AutoInstall' или 'AutoInstallX', т.е. выполняется только распаковка. Кроме этого не создаются ярлыки, не удаляются файлы и SFX архив ('Shortcut', 'Delete' и 'SelfDelete' не выполняются)

Ключ не действует при распаковке во временную папку.

-omX

Переопределяет параметр 'OverwriteMode' файла конфигурации.

  • 0 - перезаписывать все файлы (режим по умолчанию)
  • 1 - не перезаписывать существующие файлы
  • 2 - перезаписывать только те файлы, которые старее, чем в SFX архиве
-sdX

Переопределяет параметр 'SelfDelete' файла конфигурации.

  • 0 - НЕ УДАЛЯТЬ SFX архив, даже если в файле конфигурации присутствует SelfDelete="1"
  • 1 - УДАЛИТЬ SFX архив, независимо от наличия 'SelfDelete' в файле конфигурации
-sfxconfig

Позволяет извлечь из SFX архива и сохранить файл конфигурации. После ключа через пробел указывается имя (или путь и имя) файла. Имя и расширение файла может быть любым. Допустимы как абсолютные, так и относительные пути. Если папки не существует - она будет создана. Если создать папку или записать файл на носитель (например, CD-ROM) не удастся - будет выведено сообщение об ошибке. Примеры использования:

  • -sfxconfig config.txt - сохранит файл "config.txt" в текущей папке*
  • -sfxconfig \config.txt - сохранит файл "config.txt" в корне диска текущей папки*
  • -sfxconfig ..\config.txt - сохранит файл "config.txt" в папке уровнем выше текущей папки*
  • -sfxconfig D:\DISTRIBUT\7-Zip\Папка с пробелами и кириллицей\конфигурация.cfg - сохранит файл "конфигурация.cfg" в папке "D:\DISTRIBUT\7-Zip\Папка с пробелами и кириллицей"

* О текущей папке см. относительные пути.

-sfxversion

Выводит окно с информацией о версии и дате создания SFX модуля.
Полезно, когда информация в ресурсах модуля была кем-то изменена.

-y

Скрывает окна диалогов 'BeginPrompt', 'ExtractPath', совмещенного 'BeginPrompt' + 'ExtractPath' и 'FinishMessage'. Окно распаковки (если не скрыто параметром 'GUIMode' или ключом '-gm2') будет показано. При попытке прервать распаковку/установку, она будет прервана без вывода окна подтверждения 'CancelPrompt'. Окна ошибок, если таковые возникнут, будут отображаться, не зависимо от этого ключа. Ключ оригинального SFX модуля 7-Zip.


Примеры использования

Пример файла конфигурации

Описание работы SFX архива

№1

;!@Install@!UTF-8!
RunProgram="setup.exe /s"
GUIMode="2"
;!@InstallEnd@!

Это беcключевой "тихий" SFX архив.

Архив при запуске незаметно (диалог распаковки не отображается, GUIMode="2") распакует содержимое во временную папку и запустит "setup.exe /s" для автоматической установки ПО. Временная папка будет удалена по окончании установки.

№2

;!@Install@!UTF-8!
RunProgram="setup.exe /s"
InstallPath="%PROGRAMFILES%\\test"
ExtractTitle="Installing a virus..."
GUIMode="1"
SelfDelete="1"
;!@InstallEnd@!

Это беcключевой SFX архив.
После запуска архива, он напугает пользователя [image] диалогом распаковки с заголовком "Installing the virus...", но без кнопки "Отмена" и возможности прервать распаковку (GUIMode="1"). Содержимое архива будет распаковано в папку %ProgramFiles%\test, после чего запустится "setup.exe /s" для автоматической установки ПО. Сам SFX архив будет удален (если он был запущен с жесткого диска).

Папка %ProgramFiles%\test НЕ будет удалена по окончании установки.

№3

;!@Install@!UTF-8!
BeginPrompt="Install this program?"
ExtractTitle="Preparing the installation..."
RunProgram="setup.exe"
AutoInstall="setup.exe /s"
;!@InstallEnd@!

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

Если пользователь запустит архив без ключей, то появится диалог "Install this program?" с кнопками "Да" и "Нет". Нажав "Да", он запустит распаковку архива во временную папку, сопровождаемую родным 7-Zip диалогом с кнопками "Отмена" и "Закрыть" (которая в правом верхнем углу окна) с заголовком "Preparing the installation...". По окончании распаковки запустится "setup.exe", давая пользователю возможность контролировать ход установки ПО.

Если же пользователь нажмет "Да", удерживая клавишу [SHIFT] (запускает автоматическую установку, 'AutoInstall'), то "setup.exe" запустится с ключом "/s", осуществляя автоматическую установку ПО.

Если он запустит этот же архив с ключами "-ai -gm2", то диалог "Install this program?" будет подавлен ключом '-ai', будет вызвана опция автоматической установки "setup.exe /s" (ключ '-ai'), а диалог распаковки не будет отображаться вовсе (ключ '-gm2').

При любом из вариантов временная папка будет удалена по окончании установки.

№4

;!@Install@!UTF-8!
Title="Установка Media Player Classic"
BeginPrompt="В архиве три варианта установки Media Player Classic.\nПосле установки он будет назначен проигрывателем \nпо умолчанию для следующих типов файлов:\n\n1.  Запуск с ключом '-ai1' - только для аудио файлов\n2.  Запуск с ключом '-ai2' - только для видео файлов\n3.  Нажатие \"Да\" или запуск с ключом '-ai' - для аудио\n     и видео файлов\n\nИспользовать вариант №3 установки Media Player Classic?"
InstallPath="%windir%\system32"
GUIMode="1"
GUIFlags="1+8+2048"
Shortcut="Du,{%%T\\mplayerc.exe},{},{},{Media Player Classic},{Media Player Classic}"
Shortcut="Pu,{%%T\\mplayerc.exe},{},{},{Media Player Classic},{Media Player Classic}"
RunProgram="mplayerc.exe /regaud /regvid"
AutoInstall="mplayerc.exe /regaud /regvid"
;Audio Only
AutoInstall1="mplayerc.exe /regaud"
;VideoOnly
AutoInstall2="mplayerc.exe /regvid"
;!@InstallEnd@!

Media Player Classic и его INI файл упакованы в SFX архив. Если его запустить без ключей, пользователь увидит следующее окно. "Стандартная" иконка в окне заменена на иконку модуля ключом 2048 параметра 'GUIFlags'.

Нажатие "Да" приведет к распаковке содержимого архива в папку system32 (в папку установки Windows). В окне распаковки кнопка "Отмена" скрыта, а "Закрыть" (которая в правом верхнем углу окна) - блокирована, процент распаковки отображается в правой части заголовка, используются стили Windows XP. Для текущего пользователя будут созданы два ярлыка с именем и описанием "Media Player Classic": на рабочем столе и в меню "Пуск -> Программы".

Запуск этого же SFX архива с ключами "-ai -gm2" сделает все то же самое, но без диалогов. Точно так же, запуск с ключом '-ai1' или '-ai2', вместе с '-gm2', тихо установит Media Player Classic и ассоциирует его с аудио или видео файлами соответственно.

№5

;!@Install@!UTF-8!
Title="Инструменты для 7z SFX"
BeginPrompt="Архив содержит инструменты для 7z SFX:\n\n• Модифицированный 7z SFX модуль\n• 7z SFX Splitter для извлечения компонентов из SFX архива \n• Файл справки для модуля (CHM формат)\n\nЯрлык к файлу справки будет помещен на ваш Рабочий стол.\nФайл справки откроется автоматически после извлечения."
CancelPrompt="Вы хотите прервать распаковку?"
ExtractDialogText="Подождите, пожалуйста..."
ExtractPathText="Пожалуйста, введите путь распаковки:"
ExtractTitle="Распаковка..."
GUIFlags="8+32+64+256+4096"
GUIMode="1"
InstallPath="%ProgramFiles%\\7z SFX Tools"
OverwriteMode="2"
RunProgram="nowait:\"7zSD_RU.chm\""
Shortcut="Du,{%%T\\7zSD_RU.chm},{},{},{Описание модифицированного 7z SFX модуля},{Все о 7z SFX модуле},{},{%%T\\7ZSplit.exe},{0}"
;!@InstallEnd@!

Интерактивный режим установки с возможностью выбора каталога распаковки. 7z SFX Tools упакованы в архив. При запуске пользователь видит такое сообщение:

"Стандартные" кнопки диалога "Да"-"Нет" заменены на "ОК"-"Отмена" ключом 4096 параметра 'GUIFlags'.

При попытке отменить распаковку нажатием "Отмена", будет показан диалог, прописанный в параметре 'CancelPrompt'. Каталог распаковки архива может быть изменен. Путь по умолчанию берется из 'InstallPath', а сам диалог выбора пути совмещен с 'BeginPrompt' при помощи параметра GUIFlags="8+32+64+256".

При распаковке будут перезаписаны только более старые файлы ('OverwriteMode'). На Рабочем столе текущего пользователя (параметр 'type' указан как "Du") принудительно будет создан ярлык к файлу справки (иконка для него будет взята из файла 7ZSplit.exe), а сам файл справки запустится по окончании распаковки.

№6

;!@Install@!UTF-8!
Title="Установка Total Commander 7pb3"
BeginPrompt="Сейчас будет установлен Total Commander\nс английским интерфейсом (trial версия).\n\nО других вариантах установки Вы можете\nузнать, нажав \"Отмена\" и запустив снова\nэтот SFX архив с ключом '-?' или '-h'"
; Путь установки TC
SetEnvironment="PathTC=%ProgramFiles%\\TOOLS\\Total Commander"
SetEnvironment="Var1=%PathTC%\\"
SetEnvironment="Var2=\"%PathTC%\""
; Удаление ключей предыдущей установки TC
SetEnvironment="DelKey1=hidcon:cmd /c reg delete \"hkcu\\Software\\Ghisler\" /f"
SetEnvironment="DelKey2=hidcon:cmd /c reg delete \"hklm\\Software\\Ghisler\" /f"
; Установка "чистого" TC
RunProgram="%DelKey1%"
RunProgram="%DelKey2%"
RunProgram="fm20:tcmd7pb3_E.exe"
AutoInstall1="%DelKey1%"
AutoInstall1="%DelKey2%"
AutoInstall1="fm20:tcmd7pb3_E.exe"
; Русификация
AutoInstall2="hidcon:cmd /c xcopy Language \"%Var1%Language\" /s /e /i /y"
AutoInstall2="hidcon:cmd /c copy !ReadMe_Rus.txt %Var2%"
AutoInstall2="hidcon:cmd /c copy Hist_rus.txt %Var2%"
AutoInstall2="hidcon:cmd /c copy Keyb_rus.txt %Var2%"
; Индивидуальные настройки
AutoInstall3="hidcon:cmd /c copy Default.bar %Var2%"
AutoInstall3="hidcon:cmd /c copy default.br2 %Var2%"
AutoInstall3="hidcon:cmd /c copy wcx_ftp.ini %Var2%"
AutoInstall3="hidcon:cmd /c copy wincmd.ini %Var2%"
; Лицензионный ключ
AutoInstall4="hidcon:cmd /c copy wincmd.key %Var2%"
; Поддержка шифрования
AutoInstall5="hidcon:cmd /c copy wcmzip32.dll %Var2%"
; Плагины и утилиты
AutoInstall6="hidcon:cmd /c xcopy Info \"%Var1%Info\" /s /e /i /y"
AutoInstall6="hidcon:cmd /c xcopy Plugins \"%Var1%Plugins\" /s /e /i /y"
AutoInstall6="hidcon:cmd /c xcopy Utilites \"%Var1%Utilites\" /s /e /i /y"
; Просмотровщик графических и медиа файлов
AutoInstall7="hidcon:cmd /c xcopy IrfanView \"%Var1%IrfanView\" /s /e /i /y"
; Автозапуск TC при подключении флешки
AutoInstall8="hidcon:cmd /c \"regedit -s ForAutoplayTC.reg\""
; Полная установка TC
AutoInstall="%DelKey1%"
AutoInstall="%DelKey2%"
AutoInstall="fm20:tcmd7pb3_E.exe"
AutoInstall="hidcon:cmd /c \"del tcmd7pb3_E.exe /q\""
AutoInstall="hidcon:cmd /c xcopy %%T %Var2% /s /e /i /y"
AutoInstall="hidcon:cmd /c \"regedit -s ForAutoplayTC.reg\""
GUIFlags="2+4+8+16+32+2048+4096"
GUIMode="1"
ExtractTitle="Распаковка файлов..."
ExtractDialogText="Подождите, уже почти все готово."
Shortcut="26,{%Var1%TOTALCMD.EXE},{},{Microsoft\\Internet Explorer\\Quick Launch},{Менеджер файлов},{Total Commander}"
HelpText="При запуске этого SFX архива без ключей будет установлен\nTotal Commander (TC) с английским интерфейсом (trial версия).\n\nПри запуске этого же SFX архива с ключами (цифра - ключ),\nбудут установлены:\n\t1  Сам Total Commander (ключ ОБЯЗАТЕЛЬНЫЙ)\n\t2  Файлы русификации\n\t3  Файлы настроек\n\t4  Файл регистрации (помните об авторских правах)\n\t5  ZIP-dll с возможностью шифрования\n\t6  Плагины\n\t7  Просмотровщик IrfanView\n\t8  Автозапуск TC при подключении флешки\n\nЕсли запустить SFX архив с ключом:\n•  '-ai12345678' - Вы получите \"полный\" TC\n•  '-ai1245' - Вам не будет \"навязан\" стиль создателя архива\n•  '-ai125' - Вы получите TC с русским интерфейсом,\nно trial версию, зато совесть ваша будет чиста ;)\n\nВыберите нужный Вам набор ключей."
FinishMessage="Total Commander 7pb3 установлен.\n\nДля запуска ТС щелкните его значок\nна панели быстрого запуска."
;!@InstallEnd@!

Популярный файловый менеджер Total Commander и необходимые для его нормальной работы файлы упакованы в SFX архив. Если его запустить без ключей, пользователь увидит окно, прописанное в параметре 'BeginPrompt'. "Нестандартная" иконка в окне и кнопки "ОК"-"Отмена" определены GUIFlags="...+2048+4096".

Если пользователь, следую рекомендации, нажмет кнопку "Отмена" и прервет установку, а затем запустит архив снова, но с ключом '-?' или '-h', то увидит следующее окно, прописанное в параметре 'HelpText'.

Выбрав необходимый вариант, пользователь вновь запускает SFX архив с ключом, например, '-ai125'. Окно 'BeginPrompt' показано не будет (ключ '-aiX' подавит его), а появиться окно распаковки.

Его внешний вид определяют GUIFlags="2+4+8+16+32..." и GUIMode="1", а текст - параметры 'ExtractTitle' и 'ExtractDialogText'.

По окончанию распаковки запуститься установка TC и, по ее завершению (при любом варианте установки, префикс 'fm20' в параметрах 'AutoInstall'), будет выведено окно, прописанное в параметре 'FinishMessage' в течении 20с (обратный отсчет таймера отображается на кнопке "OK"), а затем закроется.

На панели Быстрого запуска для текущего пользователя, параметр 'type' указан как "26" (недокументированная [image] возможность), принудительно будет создан ярлык к TC.

Если пользователь запустит SFX архив с ключом "-sfxconfig cfg.txt", то в сохраненном файле cfg.txt он обнаружит вариант установки "забытый" [image] создателем архива.
Можно было просто нажать "OK", удерживая клавишу [SHIFT] в первом окне 'BeginPrompt' (запускает команды 'AutoInstall'), и был бы установлен "полный" TC.

При любом из вариантов временная папка будет удалена по окончании установки.


История изменений

История изменений модифицированного SFX модуля

# | - Изменено
* | - Исправлено
+ | - Добавлено
– | - Удалено
1.2 RC1 (сборка 715) 14.07.07
# | Использован исходный код 7-Zip версии 4.49 beta от 11 июля 2007 г.
1.2 RC1 (сборка 704) 03.07.07
# | Уменьшен размера модуля за счет оптимизации текстовых данных
1.2 RC1 (сборка 702) 01.07.07
# | Небольшие изменения в автоматическом определении языка системы и пользователя
1.2 beta (сборка 699) 28.06.07
# | Использован исходный код 7-Zip версии 4.48 beta от 26 июня 2007 г.
+ | Метод 'copy' для несжатых файлов (gora:forum.oszone.net)
1.2 beta (сборка 687) 16.06.07
# | Использован исходный код 7-Zip версии 4.47 beta от 27 мая 2007 г.
1.2 beta (сборка 643) 03.05.07
# | Использован исходный код 7-Zip версии 4.45 beta от 17 апреля 2007 г.
* | Утечка памяти, особенно заметная при большом количестве файлов в архиве
1.2 beta (сборка 571) 20.02.07
* | Отсутствие 'GUIFlags' в файле конфигурации приводило к неверному отображению диалогов (gora:forum.oszone.net)
* | 'SelfDelete' не работал на SFX архивах имеющих атрибут "только для чтения" (SAOPP:forum.oszone.net)
1.2 beta (сборка 552) 01.02.07
* | Не работал (не воспринимался модулем) указанный пользователем путь распаковки (SAOPP:forum.oszone.net)
1.2 beta (сборка 551) 31.01.07
* | Не обрабатывались (не разбирались) переменные среды в параметре 'Directory'
1.2 beta (сборка 549) 29.01.07
# | Использован исходный код 7-Zip версии 4.44 beta от 20 января 2007 г.
# | В диалоге 'CancelPrompt' по умолчанию кнопка "Нет"
# | Полностью переписано отображение диалогов
# | Клавиша [Esc] работает во всех диалогах, срабатывая как "Нет" или "Отмена"
# | Звуки только в диалогах 'CancelPrompt', 'Error' и 'FinishMessage'
* | Некорректная работа 'FinishMessage' при указании ключа '-y'
* | Некорректная работа 'CancelPrompt' при указании ключа '-y'
* | Совместимость с Windows Vista
+ | Русская/английская локализация всех сообщений (язык сообщений выбирается автоматически, исходя из языка интерфейса пользователя)
+ | Пакетный режим автоматической установки программ (ключ '-aiX') (gora:forum.oszone.net)
+ | 'SetEnvironment' в конфигурационном файле (gora:forum.oszone.net)
+ | Ключ '-sfxconfig' (gora:forum.oszone.net)
+ | Таймер в 'FinishMessage'
+ | Отображение иконки модуля в диалоге 'BeginPrompt' и в совмещенном диалоге 'BeginPrompt' + 'ExtractPath' (через 'GUIFlags')
+ | Замена кнопок "Да"-"Нет" на "ОК"-"Отмена" в диалоге 'BeginPrompt' и в совмещенном диалоге 'BeginPrompt' + 'ExtractPath' (через 'GUIFlags')
1.1 beta (сборка 516) 27.12.06
# | Параметр 'Directory' действует только для первого 'RunProgram'
+ | Ключ '-sfxversion'
1.1 beta (сборка 513) 24.12.06
* | Игнорирование ключей командной строки '-?' ('-h') при отсутствующем 'HelpText' (gora:forum.oszone.net)
1.1 beta (сборка 499) 10.12.06
# | Префикс 'nowait' игнорируется при распаковке во временную папку
# | Ключ '-y' подавляет все окна, кроме окон ошибок и окна процесса распаковки (если используется)
# | 'ExecuteFile' и 'ExecuteParameters' не могут быть множественными
* | Не работал ключ командной строки '-nr'
1.1 beta (сборка 463) 04.11.06
# | Управление 'FinishMessage' из командной строки и префиксом в конфигурационном файле
# | Префиксы в параметрах выполнения программ могут следовать в любой последовательности
* | При распаковке во временную папку и неуказанных 'RunProgram', 'ExecuteFile' и 'AutoInstall'-ах не производилась попытка выполнить "setup.exe" (gora:forum.oszone.net)
* | Некорректное отображение 'ExtractPathText' при количестве строк больше 2 и выключенном отображении иконки (gora:forum.oszone.net)
+ | 'GUIFlags' отдельными флагами
1.1 beta (сборка 457) 29.10.06
* | В 'InstallPath' не подставлялась переменная %%S (gora:forum.oszone.net)
+ | 'FinishMessage' в конфигурационном файле (neitral72:forum.oszone.net)
+ | Поддержка новых параметров оригинального модуля: 'ExecuteFile', 'ExecuteParameters', 'Progress', 'Directory'
+ | Множественное использование 'RunProgram', 'ExecuteFile' и всех 'AutoInstall'-ов
1.1 beta (сборка 301) 10.06.06
# | Использован исходный код 7-Zip версии 4.42 от 14 мая 2006 г.
* | Неверное отображение кнопки выбора папки при включенных стилях (схемах) Windows XP
* | Некорректное отображение 'ExtractDialogText' при количестве строк больше 2 и включенном отображении иконки (gora:forum.oszone.net)
* | При отображении диалога указания пути распаковки выводился "Стандартный звук" ("Default beep") Windows. (gora:forum.oszone.net)
* | Некорректная передача ключей исполняемой программе, указанных в командной строке модуля (vampik:forum.oszone.net)
* | Некорректная передача пути распаковки с пробелами через переменную %%T (melato:forum.oszone.net)
+ | Отображение иконки в диалоге указания пути распаковки (через 'GUIFlags')
+ | Запрет на исполнение 'RunProgram' и 'AutoInstall'-ов из командной строки (ключ '-nr')
+ | Переменная %%S - полный путь к папке, в которой расположен архив установки (vampik:forum.oszone.net)
+ | Назначение иконки ярлыку в параметре 'Shortcut' (YuriPet:forum.oszone.net)
1.1 beta (сборка 258) 13.04.06
* | При отображении диалога распаковки БЕЗ использования в нем иконки, выводился "Стандартный звук" ("Default beep") Windows. (gora:forum.oszone.net)
1.1 beta (сборка 257) 12.04.06
* | Медленная распаковка (gora:forum.oszone.net)
1.1 beta (сборка 255) 10.04.06
# | Использован исходный код 7-Zip версии 4.37 beta от 18 марта 2006 г.
+ | Режимы перезаписи файлов ('OverwriteMode' в конфигурационном файле и '-omX' в командной строке)
+ | Возможность подтверждения пользователем отмены установки/распаковки
+ | Возможность указания/изменения пути распаковки пользователем
+ | Вывод текста помощи (указывается в конфигурационном файле 'HelpText', вызывается из командной строки '-h' или '-?')
+ | Отмена вывода иконки в заголовках окон (через 'GUIFlags') (gora:forum.oszone.net)
+ | Дополнительные переменные среды при работе модуля (%UserDesktop%, %MyDocuments% и т.д. )
+ | Дополнительный префикс 'nowait' для 'RunProgram' и 'AutoInstall'-ов
– | Поддержка ANSI операционных систем Win95, Win98, WinMe
1.0.0.51123 (сборка 117) 23.11.05
# | Использован исходный код 7-Zip версии 4.30 beta от 18 ноября 2005 г.
+ | Ключ '-!' в командной строке.
1.0.0.51028 (сборка 91) 28.10.05
# | Текущей папкой при выполнении команд 'Delete' является папка, в которой находится файл SFX архива.
* | В 'RunProgram' и всех 'AutoInstall' отсутствовал разбор переменных среды (Vadikan:forum.oszone.net)
+ | В параметрах создания ярлыков 'Shortcut' и удаления 'Delete' вместо '%%T' подставляется папка распаковки (раньше работало только для 'RunProgram' и 'AutoInstall'-ов)
1.0.0.51017 (сборка 80) 17.10.05
# | Отображение/расположение/центровка элементов диалога распаковки для различных режимов (с иконкой, без нее, с дополнительным текстом и т.д.)
1.0.0.51015 (сборка 78) 15.10.05
* | В режиме со скрытой кнопкой "Отмена" и блокированной "Закрыть" (GUIMode="1") все равно можно было прервать распаковку с клавиатуры с помощью [Esc] или [Alt+F4] (Debby:forum.oszone.net)
+ | Жирный шрифт для индикатора процентов (через 'GUIFlags') (Debby:forum.oszone.net)
+ | Поддержка стилей (схем) Windows XP (через 'GUIFlags')
+ | Иконка в диалоге распаковки (через 'GUIFlags')
1.0.0.51012 (сборка 75) 12.10.05
* | Нажатие "Да" с клавишей [Shift] в окне запроса установки ('BeginPrompt') не вызывало автоматическую установку. Из командной строки работало. (zvezduk:forum.oszone.net)
+ | Указание рабочей папки в ярлыках (zvezduk:forum.oszone.net)
1.0.0.51011 (сборка 74) 11.10.05
* | Ошибка при отсутствующих 'RunProgram' и 'AutoInstall' и указанном 'InstallPath' приводила к ненормальному завершению работы модуля с окном "Инструкция по адресу "0х0040XXXX обратилась к памяти по адресу "0x00000000. Память не может быть "read"". (HWG:forum.oszone.net)
1.0.0.51010 (сборка 73) 10.10.05
* | Ошибка при извлечении архива в корень диска (HWG:forum.oszone.net)
+ | Самоудаление ('SelfDelete' в конфигурационном файле и '-sdX' в командной строке) (HWG:forum.oszone.net)
1.0.0.51007 07.10.05
 | Первый релиз


Ссылки для загрузки

К загрузке предлагаются несжатые модули. О том как сжать их и о возможных последствиях читайте здесь.

Все версии модулей (7zSD) для инсталляторов использует MSVCRT.dll (MSVCRT.dll - Microsoft Visual C runtime library). Т.е. часть функций/подпрограмм языка вынесены в отдельный файл MSVCRT.dll, что позволило значительно уменьшить размер модулей. Этот файл есть во всех системам поддерживаемых модулем. Старые версии модулей (7zS), для которых не требовался этот файл, более не поддерживаются.

Большинство файлов, предложенных для скачивания в таблице этой страницы, упаковано в 7z архивы, поэтому, позаботьтесь, чтобы у Вас было чем их распаковать.

Последние версии файлов всегда можно посмотреть здесь.

Ссылка | Объем | Версия | Дата | Описание
7zSD | 40 кб | 1.2 RC1 (сборка 715) | 14 июля 2007 г. | Модифицированный модуль (для метода сжатия LZMA используемого архиватором 7-Zip по умолчанию).
7zSD extra | 70 кб | 1.2 RC1 (сборка 715) | 14 июля 2007 г. | В архиве находятся 4 модифицированных модуля. Для каждого метода сжатия (LZMA, Deflate, PPMd) имеется отдельный модуль, а так же модуль, способный работать с любым из этих методов.
Документация (CHM формат) | 256 кб | 1.2 RC1 (сборка 715) | 14 июля 2007 г. | Справочный файл для модифицированного модуля. Описывает параметры модуля, используемые при написании файла конфигурации, с примерами их использования.
7z SFX Archive splitter | 4 кб | 0.2 (сборка 740) | 23 июля 2007 г. | Утилита позволяющая извлекать из SFX архива его компоненты (7z архив, файл конфигурации и SFX модуль), либо все разом, либо любую их комбинацию.
7z SFX Tools (7z архив) | 329 кб | 1.2 RC1 (сборка 715) | 14 июля 2007 г. | Набор для работы с 7z SFX архивами. Состав: 4 модифицированных модуля, 7z SFX Archive Splitter, справочный файл. Набор упакован в 7z архив.
7z SFX Tools (7z SFX архив) | 424 кб | 1.2 RC1 (сборка 715) | 14 июля 2007 г. | Тот же набор. Самораспаковывающийся 7z архив - является отличной демонстрацией возможностей модифицированного модуля и их (возможностей) изучения.