Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » Модифицированный SFX модуль 7-Zip'а для установок

Ответить
Настройки темы
Модифицированный SFX модуль 7-Zip'а для установок

Старожил


Сообщения: 341
Благодарности: 128


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Petya V4sechkin
Дата: 02-11-2017




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

Версия 1.6.1 Stable, сборка 3873 (5 марта 2016 г.)
Версия 1.7.0 Develop, сборка 3873 (5 марта 2016 г.)


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

Домашняя страница | Страница загрузок
Зеркалa:
Веб-архив сайта
Яндекс.Диск - полный набор
OneDrive - полный набор, пароль: 7zsfxmod
OneDrive - только модули SFX (7zsd_tools_170_3900.7z)


Обсуждение GUI (графической оболочки) для создания 7-zip SFX с модифицированным модулем ведется в этой теме. Автор GUI - hobbeat.

Кнопка для работы с 7z SFX архивами в Total Commander-е находится здесь (автор - gora, вечная память)

Файлы конфигурации 7z SFX обсуждаются в этой теме (автор - gora)

Отдельное спасибо ArtXGroup за финансовую поддержку


Теперь модуль будет в двух версиях:
1. Stable. В дальнейшем в нем из изменений будет только исправление ошибок (надеюсь их не будет) и обновление кода самого 7-Zip до последней стабильной версии.
2. Develop->Alpha->Beta. Исходные коды 7-Zip - последняя бета версия самого архиватора, добавление новых функций.

FAQ
читать дальше »



Q:
Цитата:
Как извлекать определенные папки, в зависимости от разрядности системы/варианта установки и т.д
A: Такой возможности нет, SFX архив распаковывается полностью


Q:
Цитата:
а можно ли для sfx архива задавать пароль который при обычном запуске sfx архива как бы не запрашивался и сам вводился, а при попытке просто распаковать архив этот пароль запрашивался
A: Нельзя. Модули с данной поддержкой официально недоступны. Пока, пользуясь своей "властью", я даю такие модули только тем, кто мне помогает/прикладывает какие-то усилия в развитии самого модуля, справки к нему и сопутствующих файлов. Считайте это моим эгоизмом.

Это сообщение посчитали полезным следующие участники:
Показать/скрыть список поблагодаривших

Отправлено: 06:20, 11-07-2005

 

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте, у меня такой вопрос, можно ли создать SFX архив с несколькими файлами , при распаковке вводить пароль на определенный файл (на каждый файл свой пароль) и распаковывался только это файл. Возможно ли так сделать? (Просто видел видео как вводили 2 разных пароля и там получалось 2 разных файла)

Отправлено: 20:40, 08-03-2016 | #1701



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

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


Новый участник


Сообщения: 46
Благодарности: 4

Профиль | Отправить PM | Цитировать


evgeny1337, Почитай FAQ в шапке.

Отправлено: 09:08, 09-03-2016 | #1702


Ветеран


Консультант


Сообщения: 1511
Благодарности: 413

Профиль | Отправить PM | Цитировать


Цитата vladshishkin:
Подскажите пожалуйста, если в каком то редакторе подсветка синтаксиса файла сценария SFX модуля »
vladshishkin, раз никто ничего не подсказал поделюсь своим способом. Правлю всё Notepad++
Для синтаксической подстветки использую либо INI, либо Haskell (выбирается там в меню). Вот скрины с примером
haskell, ms-ini.

-------


Отправлено: 19:14, 09-03-2016 | #1703


Новый участник


Сообщения: 46
Благодарности: 4

Профиль | Отправить PM | Цитировать


Это не подсветка, а раскраска. Причем не самая удачная... А жаль...

Отправлено: 18:32, 14-03-2016 | #1704


Новый участник


Сообщения: 9
Благодарности: 2

Профиль | Цитировать


Oleg_Sch, Модули не запускаются на XP без SP, появляется окно "приложение неправильно настроено". Причину удалось выяснить - системе не нравится строчка манифеста:
Код: Выделить весь код
<assemblyIdentity version="1.5.3.3819" name="7-Zip.SfxMod" type="win32"></assemblyIdentity>
Может тупо удалить её? Тем более информация о версии есть в другой структуре.

P.S. Проверял на версиях 153-170

Последний раз редактировалось yurecnew, 18-03-2016 в 06:42.


Отправлено: 06:36, 18-03-2016 | #1705


Старожил


Сообщения: 341
Благодарности: 128

Профиль | Сайт | Отправить PM | Цитировать


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

-------
http://7zsfx.info


Отправлено: 12:05, 18-03-2016 | #1706


Новый участник


Сообщения: 9
Благодарности: 2

Профиль | Цитировать


Цитата Oleg_Sch:
Ничего обещать не буду, надо поднимать виртуалку для тестов, а времени не хватает »
ok. Пробовал разные варианты замены, помогает только полная замена строки пробелами в хекс-редакторе или удаление в редакторе ресурсов. Скрин с ошибкой:
http://i75.fastpic.ru/big/2016/0318/...d1d09c8cee.png

P.S. На английской хрюше таблет едишн с sp1a модули запускаются

Отправлено: 12:43, 18-03-2016 | #1707


Старожил


Сообщения: 341
Благодарности: 128

Профиль | Сайт | Отправить PM | Цитировать


Очередные обновления, пока только в SVN, обновления сайта и справки позже

1.6.2.3888-Stable:
Цитата:
1.6.2 Release (сборка 3888) 20.03.16
* Манифест некорректно работал в Windows XP без установленных обновлений (yurecnew:forum.oszone.net)
* Исключение при пустом файле конфигурации (gora:forum.oszone.net)

1.6.1 Release (сборка 3873) 05.03.16
* Окна некоторых дочерних процессов отображались на заднем плане (ArtXGroup:forum.oszone.net)
1.7.0.3888-Develop
Цитата:
1.7 develop (сборка 3888) 20.03.16
* Манифест некорректно работал в Windows XP без установленных обновлений (yurecnew:forum.oszone.net)
* Исключение при пустом файле конфигурации (gora:forum.oszone.net)
+ Параметры 'ExtractMaskExclude', 'ExtractMaskInclude' в конфигурационном файле
+ Флаг 32 'MiscFlags' - меняет порядок обработки параметров 'ExtractMaskExclude', 'ExtractMaskInclude'
+ Дополнительная папка *.sfx.api.* в корне архива
+ Дополнительный файл конфигурации *.sfx.config в корне архива

1.7 develop (сборка 3873) 05.03.16
# Работа ключа '-nr' распространена на параметры 'ExecuteOnLoad', 'PreExtract', 'PreExtractX'
Кратко о новых параметрах и флаге

Цитата:
ExtractMaskExclude="mask"
Определяет маску файлов для исключения из распаковки. Параметр множественный, в каждом параметре указывается только одна маска.
Поддерживается только один тип префиксов - платформа операционной системы (x64 или x86).
Например:
ExtractMaskExclude="x86:*_x64.sfx"
- исключит из распаковки все 64-битные модули, если запуск произведен в 32-битной операционной системы
ExtractMaskExclude="*.sfx"
- исключит из распаковки все модули, независимо от системы, остальные файлы будут распакованы
Если параметр не указан и указан MiscFlags=32, то автоматически используется:
ExtractMaskExclude="*"

ExtractMaskInclude="mask"
Определяет маску файлов для распаковки. Параметр множественный, в каждом параметре указывается только одна маска.
Поддерживается только один тип префиксов - платформа операционной системы (x64 или x86).
Например:
ExtractMaskInclude="x64:*_x64.sfx"
- распакует только 64-битные модули, если запуск произведен в 64-битной операционной системы
ExtractMaskInclude="%%P:%%P\\*"
- распакует папку (%%P), соответствующую разрядности системы в которой запущен SFX и все ее содержимое, остальное пропустит
Если параметр не указан и не указан MiscFlags=32, используется:
ExtractMaskInclude="*"

MiscFlags="x"
32 - сменить порядок обработки параметров 'ExtractMaskExclude', 'ExtractMaskInclude'
Цитата:
Без MiscFlgs=32 Обработка идет так:
1. Проверяем 'ExtractMaskExclude'. Файл попадает в маску - НЕ распаковываем, переходим к следующему файлу
2. Тут файл не попал в маску 'ExtractMaskExclude', поэтому проверяем 'ExtractMaskInclude', если файл попадает в маску - распаковываем

С MiscFlags=32
1. Проверяем 'ExtractMaskInclude'. Файл попадает в маску - распаковываем, переходим к следующему файлу
2. Тут файл не попал в маску 'ExtractMaskInclude', поэтому проверяем 'ExtractMaskExclude', если файл попадает в маску - НЕ распаковываем
Цитата:
Модуль, кроме основного файла конфигурации, поддерживает дополнительный файл конфигурации, который должен быть расположен в корне архива и должен называться *.sfx.config, где вместо звездочки может быть любое имя.
Основной файл конфигурации, пусть даже пустой, всё равно должен присутствовать, т.к. именно его сигнатуры служат маркером что "это SFX архив"


Последовательность загрузки файлов конфигурации и обработка их модулем


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

Загрузка происходит так:

Сначала в рабочий файл конфигурации загружается основной файл конфигурации
Парсится и применяется командная строка, модифицируется рабочий файл конфигурации
Открывается архив и в его корне ищется дополнительный файл конфигурации *.sfx.config
Если дополнительный файл конфигурации *.sfx.config найден, то весь рабочий файл конфигурации сбрасывается
Снова в рабочий файл конфигурации загружается основной файл конфигурации
Дополнительный файл конфигурации ПОДГРУЖАЕТСЯ к рабочему файлу конфигурации
Заново парсится и применяется командная строка, модифицируется рабочий файл конфигурации
После завершения загрузки, созданный рабочий файл конфигурации обрабатывается.

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

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

Если параметр множественный, то он просто добавляется в список.

Если необходимо ПОЛНОСТЬЮ переопределить какой-то множественный параметр, можно обнулить список этого параметра (т.е. удалить все предыдущие), указав в нем знак, минус (-), например:

RunProgram=-


Хотя файлов *.sfx.config может быть сколько угодно, не рекомендуется увлекаться их разбиением, т.к. порядок их загрузки зависит от их очередности в архиве и может быть непредсказуем, что в свою очередь может повлиять на переопределение параметров. Для повседневных нужд достаточно разбивать на "платформа", "язык", "платформа/язык", т.е., чтобы каждый файл был со своей сигнатурой, чтобы сигнатуры не повторялись.

-------
http://7zsfx.info

Это сообщение посчитали полезным следующие участники:

Отправлено: 06:52, 21-03-2016 | #1708


Ветеран


Консультант


Сообщения: 1511
Благодарности: 413

Профиль | Отправить PM | Цитировать


Цитата yurecnew:
ok. Пробовал разные варианты замены, помогает только полная замена строки пробелами в хекс-редакторе или удаление в редакторе ресурсов. Скрин с ошибкой:
http://i75.fastpic.ru/big/2016/0318/...d1d09c8cee.png
P.S. На английской хрюше таблет едишн с sp1a модули запускаются »
Скорее всего это из-за того, что в манифест находится в неправильной секции. Он находится в секции 1033 - которая для англ. локализации, поэтому на англ. системе и работает нормально.
А правильно манифест должен находиться в 0 секции.
Попробуйте редактором ресурсов удалить существующий манифест, создать в правильной и проверить проблему.

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

-------


Последний раз редактировалось regist, 27-03-2016 в 13:03.


Отправлено: 12:55, 27-03-2016 | #1709


Новый участник


Сообщения: 9
Благодарности: 2

Профиль | Цитировать


regist, Вы наверное пропустили, постом выше вашего лог изменений в последней версии - причина автором установлена, проблема решена. Проверьте личку...

Последний раз редактировалось yurecnew, 28-03-2016 в 02:14.


Отправлено: 02:07, 28-03-2016 | #1710



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » Модифицированный SFX модуль 7-Zip'а для установок

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Горячие клавиши для восстановления заводских установок ноутбуков Sparkster Ноутбуки 398 03-10-2019 15:11
GUI для модифицированного 7-Zip SFX модуля для установок hobbeat Автоматическая установка Windows 2000/XP/2003 259 09-10-2016 07:01
Создание silent 7-zip sfx mitiya Автоматическая установка Windows 2000/XP/2003 17 01-03-2011 22:14
[решено] Как создать модуль SFX? CtrlSoft Программное обеспечение Windows 3 13-02-2008 21:31
CMD/BAT - [решено] замена set str2=%str1:.zip/=.zip/!% глючит на пробелах?! akrav Скриптовые языки администрирования Windows 5 12-02-2008 11:54




 
Переход