Показать полную графическую версию : Модифицированный SFX модуль 7-Zip'а для установок
Dj_DeN83
23-07-2009, 20:08
gora, Огромное человеческое спасибо, что смог разобратся мне всё идет :yahoo: :up
Dj_DeN83
23-07-2009, 23:09
gora, Скажи как проше поменять инфо в готовом файле
Dj_DeN83, если речь идет о "копирайтах" в SFX архиве созданном кнопкой, то только пересобрав SFX архив, можно кнопкой же. Подробнее читайте в описании кнопки (ссылка в подписи).
Dj_DeN83
24-07-2009, 00:32
Dj_DeN83, если речь идет о "копирайтах" в SFX архиве созданном кнопкой, то только пересобрав SFX архив, можно кнопкой же. Подробнее читайте в описании кнопки (ссылка в подписи). »
Всё немного разобрался буду дальше с другими файлами пробовать и с новыми названиями. Спасибо gora
The "7ZSD_LZMA_Dialogs.sfx" in 1.3.0 version is so cool, but it doesn't support modifying the "Extracting Progress" dialog. Anyone can help, please?
but it doesn't support modifying the "Extracting Progress" dialog. »
Add dialog 2004 of an attachment.
Got it! Thanks, gora. ^_^
Das Betrunkene Pferd
30-07-2009, 22:29
Oleg_Sch, сталкивался с глюком, когда модуль с параметром Delete не удалял файл потому, что данный файл был занят другим приложением, запущенным самим модулём (хотя RunProgram шёл до Delete). В качестве примера, можно посмотреть, хотя бы, аддон Nero 6. В виду этого хотелось бы увидеть в модуле такую „хотелку”:
— какой-нубудь параметр DeleteAfter (название чисто для примера), который отвечал бы за удаление папки или файла после всех действий выполняемых модулём.
Думаю, что это будет полезно не только мне.
сталкивался с глюком, когда модуль с параметром Delete не удалял файл потому, что данный файл был занят другим приложением, запущенным самим модулём »
И в чем глюк? Нормальная реакция системы на попытку удалить "занятый" файл. Для реализации вашего предложения нужно будет встроить в модуль как минимум Unlocker...В качестве примера, можно посмотреть, хотя бы, аддон Nero 6. »
Нужно учитывать такие тонкости работы системы и строить аддон соответствующим образом. Для примера можете посмотреть мой вариант файла конфигурации для упомянутого аддона, там этих проблем нет.хотя RunProgram шёл до Delete »
Параметр Delete всегда выполняется после всех RunProgram и большинства других параметров независимо от расположения параметра Delete в файле конфигурации.
Das Betrunkene Pferd
30-07-2009, 22:57
И в чем глюк? »
Глюк в том, что по описанию модуля Параметр Delete всегда выполняется после всех RunProgram и большинства других параметров независимо от расположения параметра Delete в файле конфигурации. »
Оставшийся файл, кроме самого модуля, ничем не использовался и не используется.
Нужно учитывать такие тонкости работы системы и строить аддон соответствующим образом. »
Пока приходится пользоваться конструкциями типа:RunProgram="hidcon:cmd /c del /f /q ......"
Oleg_Sch
01-08-2009, 01:40
не удалял файл потому, что данный файл был занят другим приложением, запущенным самим модулём »
Снова тема "дочерних" процессов, поищите в ветке, она периодически всплывает. Решения пока нет. Все что можно было сказать про RunProgram & Delete, gora уже сказал.
Снова тема "дочерних" процессов »
А потому что появляется всё больше таких приложений с параллельно основному, запускаемыми процессами.
Я пока "выкручиваюсь", используя удержание основного процесса с помощью запуска cmd файла и "пары" - tasklist.exe и sleep.exe
@echo off
Имя основного процесса.exe
:ns_loop
tasklist /FI "Imagename eq Имя основного процесса.exe" /nh 2> nul | find /i "Имя основного процесса.exe" > nul
if errorlevel 1 (
exit )
echo ......
sleep 1
goto ns_loop
Почему бы , хотя бы эксперементально, не внедрить этот метод в SFX модуль 7-Zip ?
Возможно есть и более изящные решения...
Oleg_Sch
02-08-2009, 07:43
tasklist /FI "Imagename eq Имя основного процесса.exe" /nh 2> nul | find /i "Имя основного процесса.exe" > nul if errorlevel 1 ( »
Теоретически, не должно работать, т.к. "Имя основного процесса.exe" запустил другой процесс и "ушел". tasklist /FI "Imagename eq Имя основного процесса.exe" уже не должен его видеть. В тоже время "дочерний" выполняет свою работу, возможно с блокировкой файлов из архива.
Возможно есть и более изящные решения... »
Есть. Пока только в проектах :(
Теоретически, не должно работать »
В том то и дело , что работает. Как пример - инсталлер программы Nero 9, запускающий к основному, плюс ещё два процесса. Без этих ухищрений не возможно использовать полноценно SFX модуль с nero.
Наверное есть дочерние процессы, с которыми такой номер и не проходит, но мне пока не встречались...
Создаю архив со следующими параметрами командной строки (архиватор 9.04):
-ssw -mmt2 -m0=BCJ2 -m1=LZMA2:d128m:fb128 -m2=LZMA2:d19:fb273 -m3=LZMA2:d19:fb273 -mb0:1 -mb0s1:2 -mb0s2:3
Далее делаю его SFX с помощью модифицированного SFX модуля. При запуске готового SFX-архива выдаёт:
7-zip 9.04 ошибка
7-zip: Метод не поддерживается.
Если вместо LZMA2 прописать LZMA, то всё нормально. Я так понял, что модифицированный SFX модуль не поддерживает LZMA2. Ожидается ли поддержка LZMA2?
модифицированный SFX модуль не поддерживает LZMA2. »
Да, пока не поддерживает.Ожидается ли поддержка LZMA2? »Ожидается. Сроки автор не озвучивает, ждемс.
PS
Знакомая ком. строка. ;)
Олег, назрел такой вопрос, а могу ли я указывать таймер кнопки закрытия финиш-диалога, если конфиг только лишь распаковывает файлы в дирикторию где находится sfx? Равносильно так, как это показано в 6м примере справки. :cool:
Кстати, и вообще заинтересовало меня сейчас, можно ли в теории вообще цеплять на любую кнопку таймер?
могу ли я указывать таймер кнопки закрытия финиш-диалога, если конфиг только лишь распаковывает файлы »
Можете, добавьте в файл конфигурации холостую команду запуска и укажите в ней выдержку времени для таймера, например, так:RunProgram="fm20:hidcon:cmd /c Echo"
Grisha SAN
13-08-2009, 09:44
Хай, Олл.
Создал в ручную sfx-архив(Версия 1.3.0 Beta, сборка 1307).
;;!@Install@!UTF-8!
SetEnvironment="NameInf=Killcopy.inf"
RunProgram="hidcon:cmd /c copy %NameInf% %WINDIR%\\INF"
RunProgram="rundll32.exe advpack,LaunchINFSection %NameInf%,DefaultInstall,0"
RunProgram="hidcon:cmd /c del %NameInf% /q"
GUIMode="2"
;!@InstallEnd@!
Запускаю из c:\temp\killcopy, выдает ошибку, см. аттач. :(
Если запускаю c:\temp\, все нормально.
Кто нить может прокомментировать сиё поведение?
Grisha SAN, был аналогичный баг, поменяй %systemdrive%\temp на %winroot%\temp - отпадет часть проблем гарантировано.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.