Войти

Показать полную графическую версию : Модифицированный SFX модуль 7-Zip'а для установок


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 [42] 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Dj_DeN83
23-07-2009, 20:08
gora, Огромное человеческое спасибо, что смог разобратся мне всё идет :yahoo: :up

Dj_DeN83
23-07-2009, 23:09
gora, Скажи как проше поменять инфо в готовом файле

gora
23-07-2009, 23:17
Dj_DeN83, если речь идет о "копирайтах" в SFX архиве созданном кнопкой, то только пересобрав SFX архив, можно кнопкой же. Подробнее читайте в описании кнопки (ссылка в подписи).

Dj_DeN83
24-07-2009, 00:32
Dj_DeN83, если речь идет о "копирайтах" в SFX архиве созданном кнопкой, то только пересобрав SFX архив, можно кнопкой же. Подробнее читайте в описании кнопки (ссылка в подписи). »

Всё немного разобрался буду дальше с другими файлами пробовать и с новыми названиями. Спасибо gora

usbusb
26-07-2009, 20:55
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?

gora
26-07-2009, 21:57
but it doesn't support modifying the "Extracting Progress" dialog. »
Add dialog 2004 of an attachment.

usbusb
27-07-2009, 15:06
Got it! Thanks, gora. ^_^

Das Betrunkene Pferd
30-07-2009, 22:29
Oleg_Sch, сталкивался с глюком, когда модуль с параметром Delete не удалял файл потому, что данный файл был занят другим приложением, запущенным самим модулём (хотя RunProgram шёл до Delete). В качестве примера, можно посмотреть, хотя бы, аддон Nero 6. В виду этого хотелось бы увидеть в модуле такую „хотелку”:
— какой-нубудь параметр DeleteAfter (название чисто для примера), который отвечал бы за удаление папки или файла после всех действий выполняемых модулём.

Думаю, что это будет полезно не только мне.

gora
30-07-2009, 22:42
сталкивался с глюком, когда модуль с параметром 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 уже сказал.

MKN
01-08-2009, 20:02
Снова тема "дочерних" процессов »
А потому что появляется всё больше таких приложений с параллельно основному, запускаемыми процессами.
Я пока "выкручиваюсь", используя удержание основного процесса с помощью запуска 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" уже не должен его видеть. В тоже время "дочерний" выполняет свою работу, возможно с блокировкой файлов из архива.
Возможно есть и более изящные решения... »
Есть. Пока только в проектах :(

MKN
02-08-2009, 19:23
Теоретически, не должно работать »
В том то и дело , что работает. Как пример - инсталлер программы Nero 9, запускающий к основному, плюс ещё два процесса. Без этих ухищрений не возможно использовать полноценно SFX модуль с nero.
Наверное есть дочерние процессы, с которыми такой номер и не проходит, но мне пока не встречались...

ya158
06-08-2009, 20:07
Создаю архив со следующими параметрами командной строки (архиватор 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?

gora
06-08-2009, 20:34
модифицированный SFX модуль не поддерживает LZMA2. »
Да, пока не поддерживает.Ожидается ли поддержка LZMA2? »Ожидается. Сроки автор не озвучивает, ждемс.

PS
Знакомая ком. строка. ;)

SAOPP
08-08-2009, 22:03
Олег, назрел такой вопрос, а могу ли я указывать таймер кнопки закрытия финиш-диалога, если конфиг только лишь распаковывает файлы в дирикторию где находится sfx? Равносильно так, как это показано в 6м примере справки. :cool:

Кстати, и вообще заинтересовало меня сейчас, можно ли в теории вообще цеплять на любую кнопку таймер?

gora
09-08-2009, 20:31
могу ли я указывать таймер кнопки закрытия финиш-диалога, если конфиг только лишь распаковывает файлы »
Можете, добавьте в файл конфигурации холостую команду запуска и укажите в ней выдержку времени для таймера, например, так: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\, все нормально.
Кто нить может прокомментировать сиё поведение?

greg_b
14-08-2009, 09:24
Grisha SAN, был аналогичный баг, поменяй %systemdrive%\temp на %winroot%\temp - отпадет часть проблем гарантировано.




© OSzone.net 2001-2012