Показать полную графическую версию : Модифицированный SFX модуль 7-Zip'а для установок
Решил обновить справку к модулю. Включил информацию о новых параметрах и ченджлог из этой темы. Прошу сильно не пинать - первый опыт с CHM... Замечания и дополнения приветствуются. Перевыкладывать на других ресурсах желательно с ссылкой на этот пост.
Также выложил исходники и собранные модули.
https://yadi.sk/d/6MVDHh463GVvPP
CryptoNick
02-04-2017, 11:11
ya158, ExecuteOnLoad переход поправь
Надо написать, что -sfxconfig извлекает только основную секцию, хотя может что и изменилось в крайней версии...
То что добавил: -sfxtest зачет. Так как Gora почему то это скрывал, а я нашел в нескольких программах, в том числе и кнопке...
При использовании заглавных букв CC определяется только код возврата, а окно ошибки модуля на выводится
А этого не знал...
F - Финишное сообщение. Может объединяться с ключом '-fmX'
-fmX что то у меня не срабатывает таймер...
Цитата CryptoNick:
-fmX что то у меня не срабатывает таймер... »
Возможно проблема в модуле или его разрядности. У меня срабатывает из командной строки, что вполне логично, т.к. модуль поддерживает свои "внешние" ключи.
Proga.exe -sfxtest:D:F -fm5
CryptoNick
02-04-2017, 14:45
sov44, Не, если подсунуть сценарий...
Был интересный вариант, в инсталлере кнопки гора, когда вызывалось сообщение модуля, из батника кажется, то есть по требованию...
-fmX что то у меня не срабатывает таймер... »
Таки информацию я взял из твоего сообщения (http://forum.oszone.net/post-2704245-1801.html)
Насчет ExecuteOnLoad и -sfxconfig - посмотрю завтра
CryptoNick
02-04-2017, 20:56
ya158, Да, ну не важно это... (про таймер)
Я выдернул параметр из какой то программы, но у меня не пошло, я и забил.
ExecuteOnLoad переход поправь »
Поправил.
-sfxconfig »
Не стал изменять, т.к. делал не я.
Vladimir_02
06-04-2017, 20:46
как при распаковке sfx архива указать чтобы запускалась программа лежащая не в корне распаковываемой папки, а в подпапке ?
Например: Архив распаковывает папку с именем даты 2017-04-06. а оттуда запускается определенная программа... папка с датой будет постоянно меняться и хочется установщик сделать универсальным чтобы каждый раз не менять путь
Vladimir_02, примерно так
;!@Install@!UTF-8!
SetEnvironment="Name=test.txt"
RunProgram="%%P:hidcon:cmd /с for /f \"delims=\" %a in ('dir /b /s \"%%T\\%Name%\"') do start \"%a\""
GUIFlags="2+4+8+16+32+2048+4096"
GUIMode="1"
MiscFlags="4"
;!@InstallEnd@!
Vladimir_02
07-04-2017, 11:55
sov44, что-то не работает... запаковал test.txt в sfx архив, а при распаковке пишет:
Произошла ошибка при выполнении, не удается найти указанный файл
Vladimir_02, не нужно запаковывать test.txt, я показал всего лишь принцип, указывайте в файле конфигурации свой исполнительный файл. Команда 'dir /b /s \"%%T\\%Name%\"' перебирает все вложенные в sfx папки на предмет наличия %Name% и запускает его по полному пути через start. Возможно start в данном случае и не требуется, всё зависит от конкретного случая.
Vladimir_02
08-04-2017, 12:58
sov44, не выходит... выдает вот такое сообщение:
Произошла ошибка при выполнении "%%P:hidcon:cmd /с for /f "delims=" %a in ('dir /b /s "C:\TEMP\7ZipSfx.001\update.exe"') do start "%a"".
Не удается найти указанный файл.
т.е ищет не во вложенной папке, а во временной папке созданной 7zipSFX
nibble74
08-04-2017, 13:41
Vladimir_02, есть альтернативный метод, к примеру так:
Конфиг
RunProgram="%%P:hidcon:Update.bat"
Update.bat - кладем в корень Sfx Архива, пишем:
for /f %%a in ('dir /b /s Update.exe') do start /w "" "%%a"
Vladimir_02
08-04-2017, 18:09
nibble74, спасибо с батником работает!
и мне если честно с батником даже лучше, после распаковки архива надо будет еще несколько действий выполнить - пропишу их в батнике
2All
Решил развить идею о предотвращении двойного запуска инсталлятора.
Решил сделать прерывание работы инсталлятора при наличии или отсутствии определенных файлов, ключей реестра или определенной версии .Net. Точнее на прерывание, а вывод окна с предупреждением и возможностью прервать, проверить еще раз или проигнорировать.
С помощью этого можно, например, проверить не установлена ли другая версия программы, чтобы перед установкой деинсталлировать её.
Подробнее (http://forum.oszone.net/thread-295084-14.html)
Буду рад возможным замечаниям.
CryptoNick
17-04-2017, 10:31
Как создать многотомный 7Zip SFX в командной строке. (модифицированный модуль)
Архиватор 7-Zip 16.4 умеет создавать из оболочки
Модифицированный модуль тоже научился работать с многотомным архивом... (Где то читал)
Но как его создать, инфы не нашел...
Только это:
name.7z.001.exe - имя SFX архива (сделан из первого тома)
То есть, создаем многотомный архив и склеиваем первый том со стабом и конфигом?
А так написано в справке архиватора:
SFX модуль может распаковывать как простые, так и многотомные 7z архивы. Например, если Вы имеете архив name.7z или name.7z.001, просто переименуйте sfx модуль в name.exe и поместите его в папку с архивом.
Архиватор 7-Zip 16.4 умеет создавать из оболочки »
И без оболочки.
nibble74
17-04-2017, 19:45
У кого есть версия 1.6.1 Stable, сборка 3873, дайте скачать плис.
Ж.Д.А.Л.К.Е.Р.
17-04-2017, 22:17
nibble74, https://www.upload.ee/files/6574858/7zsd_tools_160_3873.exe.html
nibble74
18-04-2017, 04:52
Ж.Д.А.Л.К.Е.Р., Спасибо, как раз 1.6.1
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.