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

Компьютерный форум 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

 

Ветеран


Консультант


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

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


yurecnew, список изменений видел и проверил, что в новой версии манифест по прежнему в секции 1033, когда правильней его указывать в 0 (и я каждый раз из 1033 вручную удаляю). Поэтому и попросил Oleg_Sch, в следующей версии поправить.

-------


Отправлено: 09:16, 28-03-2016 | #1711



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

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


Старожил


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

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


regist, Обязательно укажу "в 0", если Вы аргументируете, что на последней версии версии 1033 не работает.
Порядок поиска и загрузки ресурсов, конечно же "черный ящик", но скажу то, что заметил.
Если Windows не находит ресурса для языка текущего пользователя (в нашем случае "русский"), то она ищет заново с LANGID=0, т.е. для любого языка.
Ещё раз. Если Вы меня переубедите и докажите, что я не прав - ставлю в 0.

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


Отправлено: 10:38, 28-03-2016 | #1712


Старожил


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

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


regist, Признаюсь, зацепили
Не поленился, полез в отладчики/дизассемблеры, добрался до функции LdrpSearchResourceSection из ntdll.dll
читать дальше »
Цитата:
// Language ids are 16bits so any value with any bits
// set above 16 should be ok, and this value only has
// to fit in a ULONG_PTR. 0x10000 should be sufficient.
// The value used is actually 0xFFFF regardless of 32bit or 64bit,
// I guess assuming this is not an actual langid, which it isn't,
// due to the relatively small number of languages, around 70.
#define USE_FIRSTAVAILABLE_LANGID (0xFFFFFFFF & ~LDR_RESOURCE_ID_NAME_MASK)

NTSTATUS
LdrpSearchResourceSection_U(
IN PVOID DllHandle,
IN const ULONG_PTR* ResourceIdPath,
IN ULONG ResourceIdPathLength,
IN ULONG Flags,
OUT PVOID *ResourceDirectoryOrData
)

/*++

Routine Description:

This function locates the address of the specified resource in the
specified DLL and returns its address.

Arguments:

DllHandle - Supplies a handle to the image file that the resource is
contained in.

ResourceIdPath - Supplies a pointer to an array of 32-bit resource
identifiers. Each identifier is either an integer or a pointer
to a null terminated string (PSZ) that specifies a resource
name. The array is used to traverse the directory structure
contained in the resource section in the image file specified by
the DllHandle parameter.

ResourceIdPathLength - Supplies the number of elements in the
ResourceIdPath array.

Flags -
LDRP_FIND_RESOURCE_DIRECTORY
searching for a resource directory, otherwise the caller is
searching for a resource data entry.

LDR_FIND_RESOURCE_LANGUAGE_EXACT
searching for a resource with, and only with, the language id
specified in ResourceIdPath, otherwise the caller wants the routine
to come up with default when specified langid is not found.

LDR_FIND_RESOURCE_LANGUAGE_REDIRECT_VERSION
searching for a resource version in main and alternative
modules paths

FindDirectoryEntry - Supplies a boolean that is TRUE if caller is
searching for a resource directory, otherwise the caller is
searching for a resource data entry.

ExactLangMatchOnly - Supplies a boolean that is TRUE if caller is
searching for a resource with, and only with, the language id
specified in ResourceIdPath, otherwise the caller wants the routine
to come up with default when specified langid is not found.

ResourceDirectoryOrData - Supplies a pointer to a variable that will
receive the address of the resource directory or data entry in
the resource data section of the image file specified by the
DllHandle parameter.
--*/

Полная версия http://gate.upm.ro/os/LABs/Windows_O.../rtl/ldrrsrc.c
В ней можно увидеть комментарии про варианты поиска ресурса
читать дальше »
Цитата:
//
// If search path includes a language id, then attempt to
// match the following language ids in this order:
//
// (0) use given language id
// (1) use primary language of given language id
// (2) use id 0 (neutral resource)
// (4) use user UI language
//
// If the PRIMARY language id is ZERO, then ALSO attempt to
// match the following language ids in this order:
//
// (3) use thread language id for console app
// (4) use user UI language
// (5) use lang id of TEB for windows app if it is different from user locale
// (6) use UI lang from exe resource
// (7) use primary UI lang from exe resource
// (8) use Install Language
// (9) use lang id from user's locale id
// (10) use primary language of user's locale id
// (11) use lang id from system default locale id
// (12) use lang id of system default locale id
// (13) use primary language of system default locale id
// (14) use US English lang id
// (15) use any lang id that matches requested info


P.S.
1. Признаю, что использование "use id 0 (neutral resource)" будет более правильным
2. Не признаю, что текущий вариант не сработает где-либо

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


Последний раз редактировалось Oleg_Sch, 28-03-2016 в 14:10. Причина: P.S.


Отправлено: 14:01, 28-03-2016 | #1713


Ветеран


Консультант


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

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


1)
Цитата Oleg_Sch:
Не признаю, что текущий вариант не сработает где-либо »
Это было предположение почему у yurecnew, мог не работать старый вариант манифеста. yurecnew, писал, что у него работает только на англ. локализации, а у вас манифест как раз расположен в секции 1033 (англ. США) поэтому и предложил ему проверить разместив его "neutral resource" и проверить проблему с проблемным манифестом. У меня нет XP с SP1 или более старой, чтобы проверить самому. А что так правильней размещать манифест вы со мной согласны.

2) По манифесту там ещё правильней добавить шапку
Код: Выделить весь код
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

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

-------


Отправлено: 18:31, 28-03-2016 | #1714


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


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

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


Цитата regist:
Это было предположение почему у yurecnew, мог не работать старый вариант манифеста. yurecnew, писал, что у него работает только на англ. локализации »
Я сразу сделал акцент на то что русская версия хрюши - без обнов совсем, а английская - с SP1A. Во всяком случае Oleg_Sch меня правильно понял. То что версия с sp1 оказалась английской просто случайность, другой с sp1 у меня нет.

P.S. Пожалуйста, 1.5.3 на оригинальном XP SP0 English VL:
http://i75.fastpic.ru/big/2016/0328/...d8a8d468a1.png

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


Отправлено: 18:55, 28-03-2016 | #1715


Старожил


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

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


Чтобы закрыть тему манифеста
http://svn.7zsfx.info/diff.php?repna...32.xml&rev=128
Виновником был отсутствующий "processorArchitecture". Почему это не работало только на WindowsXP без сервиспака? Предположу только, что т.к. манифесты появились именно в ХР, просто было сыровато.
Цитата regist:
2) По манифесту там ещё правильней добавить шапку
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> »
http://svn.7zsfx.info/filedetails.ph...manifest32.xml
Всё это есть, просто при линковке в ехе, manifestool удаляет ее, как "само собой разумеющееся"

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


Отправлено: 02:34, 29-03-2016 | #1716


Старожил


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

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


В какой-то мере "юбилейное" обновление:
1.7.0.3900
Цитата:
1.7 develop (сборка 3900) 01.04.16
# Некоторые изменения при компиляции ресурсов (regist:forum.oszone.net)
* Не работали AutoInstallX (сломалось в 3888) (gora:forum.oszone.net)
* Не подгружался файл конфигурации из больших архивов (gora:forum.oszone.net)
+ Поддержка имен дополнительных файлов конфигурации *.sfx.config.*
+ Флаг 64 'MiscFlags' - отключает использование дополнительных файлов конфигурации
+ Флаг 128 'MiscFlags' - отключает SfxAPI

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 в корне архива
Пока только SVN, за сайт и справку надеюсь на помощь gora

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

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

Отправлено: 01:39, 03-04-2016 | #1717


Старожил


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

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


SergeyZV, Никто ничего не удалял:
http://svn.7zsfx.info/listing.php?re....3888%2Fbin%2F

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


Последний раз редактировалось Oleg_Sch, 04-04-2016 в 07:28. Причина: P.S. Вот и отвечай после этого оперативно. SergeyZV удалил свой пост.


Отправлено: 07:24, 04-04-2016 | #1718


Пользователь


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

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


Oleg_Sch, Здесь не нашёл.

Цитата Oleg_Sch:
P.S. Вот и отвечай после этого оперативно. SergeyZV удалил свой пост. »
Был не прав. Вот и удалил. В любом случае спасибо за оперативность

-------
Win 7 x64


Последний раз редактировалось SergeyZV, 04-04-2016 в 07:34.


Отправлено: 07:28, 04-04-2016 | #1719


Аватара для magsood

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


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

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


last Version "7zsd_LZMA2_Dialogs_x64.sfx"?

Отправлено: 11:29, 12-04-2016 | #1720



Компьютерный форум 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




 
Переход