Показать полную графическую версию : Модифицированный SFX модуль 7-Zip'а для установок
last Version "7zsd_LZMA2_Dialogs_x64.sfx"? »
Oleg_Sch, а если не требуются дополнительные файлы конфигурации и не используются прочие функции, которые перечисляются в вашем списке изменений, то можно не обновлять модуль? Или есть и какие-то мелкие фиксы, которые вы не указываете в списках обновлений и лучше пересобирать со свежими модулями после выхода обновлений? Вопрос не про какое-то конкретное обновление модулей, а вообще.
Valerkan
12-04-2016, 19:49
last Version "7zsd_LZMA2_Dialogs.sfx"?
last Version "7zsd_LZMA2_Dialogs.sfx"? »
PS
Valerkan, делается в 4 клика мыши, нужно самому уже это уметь. ;)
Кстати вот и вопрос: а почему автор решил не компилить lzma2 модули с диалогами ?
Кстати вот и вопрос: а почему »
Дык ответ то уже дан: потому что...делается в 4 клика мыши, нужно самому уже это уметь. »
gora, я не сомневаюсь в том, что Oleg_Sch, умеет ))
Вопрос был не о том, ну да не важно.
Хочу 7zsd_all_Dialogs.sfx модуль :)
Уважаемый gora, научите, что надо делать ? )
научите »
Инструкция по изготовлению модуля с диалогами
1 Откройте модуль с диалогами (эталон), например, 7zsd_LZMA_Dialogs.sfx и, подвергаемый модификации модуль, например, 7zsd_All.sfx в Restorator 2007, как показано на рис 1http://gora.7zsfx.info/addons/pict/res1.png
2 Установите курсор на папке IMAGES, как показано на рис 1, ПКМ -> Копировать
3 Установите курсор на модуле 7zsd_All.sfx, как показано на рис 2, ПКМ -> Вставить, получите то, что показано на рис 2http://gora.7zsfx.info/addons/pict/res2.png
4 Установите курсор на папке Диалог, ПКМ -> Копировать
5 Установите курсор на модуле 7zsd_All.sfx, ПКМ -> Вставить, получите то, что показано на рис 3http://gora.7zsfx.info/addons/pict/res3.png
6 Нажмите на кнопку Сохранить файл на диск, третья слева на панели инструментов, получите то, что показано на рис 4http://gora.7zsfx.info/addons/pict/res4.png
Изготовление модуля с диалогами завершено! :yahoo:
gora, блин, а я так пробовал когда то, и ничего не вышло ))
Надо перепопробовать
Получилось ))
Вот алгоритм для Resource hacker, даже проще и быстрее (для тех, кто имеет неприятный опыт работы с Restorator2007)
Открыть 7zsd_All.sfx
Выбрать в меню Action => Add from a Resource file (*.res, *.dll, *.exe)
135928 135929
http://storage9.static.itmages.com/i/16/0413/h_1460584622_1471554_af706816d8.png http://storage9.static.itmages.com/i/16/0413/h_1460584622_4876210_5b66f1ea11.png
Выбрать 7zsd_All_Dialogs.sfx (не забыть поставить тип файлов "All files (*.*)") и отметить "папки" IMAGES и Dialogs
135930 135931
http://storage6.static.itmages.com/i/16/0413/h_1460584849_8746718_b514ea922e.pnghttp://storage2.static.itmages.com/i/16/0413/h_1460584644_7296962_c090a63391.png
Готово, сохранить
135932
http://storage1.static.itmages.com/i/16/0413/h_1460584622_8240165_e857bdf781.png
Не запускается ExecuteOnLoad, в чём может быть причина?
Модуль 7zsd_LZMA2.sfx 7zsd_170_3900, файл err.vbs в папке err.sfx.api.1, находящейся в корне архива.
ExecuteOnLoad="%%P:hidcon:cmd /c if /i not exist \"%%S\\Drivers\" (cscript //nologo err.vbs)"
sov44, хотя эта папка упомянута в анонсе, но ее описания в справке я пока не делал и даже не тестировал эту папку. Причина в том, что ее концепция не принята окончательно и может быть изменена в дальнейшем.
На момент последнего обсуждения концепции папка *.sfx.api.* в корне архива распаковывалась в дополнительную временную папку, но распаковывалось не ее содержимое, а сама папка с содержимым. Если оно так и осталось, то путь к файлу err.vbs в Вашем случае должен выглядеть так:ExecuteOnLoad="%%P:hidcon:cmd /c if /i not exist \"%%S\\Drivers\" (cscript //nologo err.sfx.api.1\\err.vbs)"
gora, к сожалению не работает. Остаётся ждать обновления модуля.
Oleg_Sch,
Большое спасибо, что занимаетесь дальнейшей разработкой модуля.
Может у вас найдется время/желание воплотить некоторые хотелки, о которых я просил ранее:
1. Префиксы/секции по аналогии с x86 и x64, но для определения на какой системе запустился инсталлятор - "XP", "VISTA, "7", "8", "10", "не ниже, чем VISTA" и т.п.
2. Проверка условий - например, наличия определенного файла. В частности сейчас появилась возможность запуска команд до распаковки самого архива - 'ExecuteOnLoad', 'PreExtract', 'PreExtractX'. С помощью них можно организовать проверку установлена ли программа или нет, а также проверку версии этой программы (с помощью cmd или vbs). Но было бы неплохо в зависимости от результатов такой проверки выводить различные BeginPrompt, запускать различные RunProgram или вообще прерывать распаковку с/без уведомлением. Можно конечно пользоваться командой типа taskkill из ExecuteOnLoad или PreExtract для прерывания распаковки при определенных условиях, но при этом можно прервать другой процесс, да и вообще лучше делать это нативно из модуля.
3. Получения в модуль значения переменной из комстроки:
GetEnvironment="cmd set a=test"
RunProgram="cmd set b=%a%"
Хотя, наверное это из области фантастики :)
Victor_Man
04-05-2016, 00:11
Давно здесь не был...а тут обновы, здорово(!), буду разбираться!
По поводу вопросов, которые возникают у меня:
1. Как предотвратить повторный запуск одного и того же SFX? Или завершить его, не попортив уже запущенный?
Зачем: мало ли что сделала ранее запущенная инстанция, а тут все начинается с начала.
Может, в текущей версии это уже можно сделать? А может и в старых был вариант? - я не настолько досконально разбирался...не ругайте сильно.
2. Хотелось бы иметь минимальный инструмент для ветвления команд (не из командной строки, а в теле файла конфигурации)
Ну хоть простейший, например - что-то проанализировать и пропустить команды или хотя бы выполнить команды.
Как бы виделось это для выполнения п.1 (просто для понимания мысли - п.1 можно решить совсем по другому, наверное):
Посмотрел наличие ранее распакованного (или созданного предыдущей инстанцией) файла (да хотя бы просто через cmd) и установил переменную %XXXX%.
В следующей команде проанализировал переменную %XXXX% и завершил сценарий (нужна команда типа Exit), можно с сообщением.
3. Был у меня еще вот такой вопрос: http://forum.oszone.net/post-2506896.html#post2506896
===========================================================
От радости :), что есть обновы не прочитал предыдущий пост - а там, собственно, похожее предложение.
vladshishkin
04-05-2016, 07:51
Victor_Man,
1. вариант был: OverwriteMode="10" по крайней мере так не давало ошибки и запускалось несколько версий
2. изучайте сценарии и чужие проекты.
Есть замечательная программа: SFX Config Editor, в ней можно открыть любой готовый проект и подсмотреть конфиг. (скопировать, отредактировать)
3. есть у модуля для этого переменные.
Victor_Man
04-05-2016, 20:19
Цитата vladshishkin:
1. вариант был: OverwriteMode="10" по крайней мере так не давало ошибки и запускалось несколько версий
2. изучайте сценарии и чужие проекты.
Есть замечательная программа: SFX Config Editor, в ней можно открыть любой готовый проект и подсмотреть конфиг. (скопировать, отредактировать)
3. есть у модуля для этого переменные. »
1. Да много может быть конфликтов, например:
- запускаем SFX, скрипт изменяет какой-то файл в %InstallPath%
- запускаем новый SFX и скрипт портит этот файл.
Или еще вариант:
Запускаем SFX, завершаем программу...но скрипт делает какие-то действия некоторое время.
Запускаем новый SFX, в процессе распаковки его первая инстанция завершается и по Delete удалет все из папки %InstallPath%.
И т.д.
2. Да знаю я, как извлечь конфигурационный файл и файлы проекта (--sfxconfig, 7Zip, Universal Extractor) и легче их рассматривать просто глазками, сверяясь с описанием. И проектов много видел, но вот что-то не нашел того, о чем я писал.
3. А можете хотя бы назвать эти переменные...их даже много, оказывается...
Надеюсь, вы не имели в виду %%S, %%T или %SfxFolderXX% - это все не то.
А в идеале для подтверждения Вашего утверждения можете изменить мой пример в п.3. Буду благодарен.
Я Вам даже билдер приложил там http://forum.oszone.net/post-2506896.html#post2506896
=============================================
Не успел посмотреть, может, что-то в новой версии и добавились, но в старой ответа на свои вопросы я не нашел.
Oleg_Sch, модули не поддерживают архивы запакованные с параметром -myx=9?
SergeyZV
10-05-2016, 18:02
Oleg_Sch, gora, Вышел 7-Zip 16.00 Final. С нетерпением ждём от вас обнов.
gora, Если есть возможнось подправить механизм теста сжатия больших архивов, что бы отображался лучший метод и при подключении ключа fb тест продолжался.
vladshishkin
18-06-2016, 08:00
Да много может быть конфликтов, например:
Запускаем SFX, завершаем программу...но скрипт делает какие-то действия некоторое время.
Запускаем новый SFX, в процессе распаковки его первая инстанция завершается и по Delete удаляет все из папки %InstallPath%. »
Я считаю что в модуле очень не хватает функции "убийства" процесса
И функции "убийства" всех дочерних процессов после закрытием проекта. Для того чтобы временная папка корректно удалялась. Иначе она активно размножается по пути извлечения.
Применение системного TaskKill не всегда возможно, так как во многих WinPe его просто нет...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.