Войти

Показать полную графическую версию : Модифицированный 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

ya158
30-03-2017, 21:17
Решил обновить справку к модулю. Включил информацию о новых параметрах и ченджлог из этой темы. Прошу сильно не пинать - первый опыт с CHM... Замечания и дополнения приветствуются. Перевыкладывать на других ресурсах желательно с ссылкой на этот пост.
Также выложил исходники и собранные модули.
https://yadi.sk/d/6MVDHh463GVvPP

CryptoNick
02-04-2017, 11:11
ya158, ExecuteOnLoad переход поправь
Надо написать, что -sfxconfig извлекает только основную секцию, хотя может что и изменилось в крайней версии...
То что добавил: -sfxtest зачет. Так как Gora почему то это скрывал, а я нашел в нескольких программах, в том числе и кнопке...
При использовании заглавных букв CC определяется только код возврата, а окно ошибки модуля на выводится
А этого не знал...
F - Финишное сообщение. Может объединяться с ключом '-fmX'
-fmX что то у меня не срабатывает таймер...

sov44
02-04-2017, 11:38
Цитата CryptoNick:
-fmX что то у меня не срабатывает таймер... »
Возможно проблема в модуле или его разрядности. У меня срабатывает из командной строки, что вполне логично, т.к. модуль поддерживает свои "внешние" ключи.
Proga.exe -sfxtest:D:F -fm5

CryptoNick
02-04-2017, 14:45
sov44, Не, если подсунуть сценарий...

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

ya158
02-04-2017, 19:50
-fmX что то у меня не срабатывает таймер... »
Таки информацию я взял из твоего сообщения (http://forum.oszone.net/post-2704245-1801.html)

Насчет ExecuteOnLoad и -sfxconfig - посмотрю завтра

CryptoNick
02-04-2017, 20:56
ya158, Да, ну не важно это... (про таймер)
Я выдернул параметр из какой то программы, но у меня не пошло, я и забил.

ya158
03-04-2017, 22:43
ExecuteOnLoad переход поправь »
Поправил.
-sfxconfig »
Не стал изменять, т.к. делал не я.

Vladimir_02
06-04-2017, 20:46
как при распаковке sfx архива указать чтобы запускалась программа лежащая не в корне распаковываемой папки, а в подпапке ?
Например: Архив распаковывает папку с именем даты 2017-04-06. а оттуда запускается определенная программа... папка с датой будет постоянно меняться и хочется установщик сделать универсальным чтобы каждый раз не менять путь

sov44
06-04-2017, 21:08
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 архив, а при распаковке пишет:
Произошла ошибка при выполнении, не удается найти указанный файл

sov44
07-04-2017, 12:12
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, спасибо с батником работает!
и мне если честно с батником даже лучше, после распаковки архива надо будет еще несколько действий выполнить - пропишу их в батнике

ya158
12-04-2017, 22:19
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 и поместите его в папку с архивом.

Iska
17-04-2017, 16:40
Архиватор 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