Показать полную графическую версию : Модифицированный SFX модуль 7-Zip'а для установок
Ж.Д.А.Л.К.Е.Р.
01-04-2014, 02:20
RunProgram="hidcon:cmd /c For /F \"Delims=\" %I In ('Dir *_File.exe /a-d /b /s') Do \"%I\""
Ключ /s дает рекурсию подкаталогов при поиске *_File.exe. Если потенциально может быть более одного искомого *_File.exe можно добавить выполнение первого найденного с последующим завершением поиска:
RunProgram="hidcon:cmd /c For /F \"Delims=\" %I In ('Dir *_File.exe /a-d /b /s') Do \"%I\" & Exit"
или конкретизировать поиск дополнительными ключами в команде Dir.
Valerkan
01-04-2014, 03:47
RunProgram="hidcon:cmd /c For /F \"Delims=\" %I In ('Dir *_File.exe /a-d /b /s') Do \"%I\" & Exit" »
Сделал так:
RunProgram="forcenowait:hidcon:cmd /c For /F \"Delims=\" %I In ('Dir *_File.exe /a-d /b /s') Do \"%I\" & Exit"
Файл *_File.exe запустился, модуль завершил работу, остался процесс cmd.exe, можно ли
не дожидаясь выполнения *_File.exe закрыть и командную строку после запуска файла *_File.exe?
можно ли не дожидаясь выполнения *_File.exe закрыть и командную строку после запуска файла *_File.exe? »
Для самостоятельного изучения:
start /?
Обратите особое внимание на применение кавычек.
Valerkan
01-04-2014, 16:02
start /? »
С командой start разобрался, без пустых кавычек файл не запускается.
Отрабатывает так:
RunProgram="forcenowait:hidcon:cmd /c start \"\" \"My_File_210 Rus.exe\" -y"
RunProgram="forcenowait:hidcon:cmd /c start \"\" \"0215_Folder\\0215b_File.exe\" -y"
Файлы запускаются с параметром -y, командная строка завершает работу.
Но как подставить команду start и параметр -y сюда, где часть имени будет меняться:
RunProgram="forcenowait:hidcon:cmd /c For %i In (My_File_*.exe) Do \"%~nxi\""
RunProgram="forcenowait:hidcon:cmd /c For /F \"Delims=\" %I In ('Dir *_File.exe /a-d /b /s') Do \"%I\" & Exit"
Увы не получается. Нужно два файла запустить с параметрами -y с завершением работы
командной строки.
Подскажите, а то на вскидку не нашел.
Не может ли, случайно, данный модуль сам подавлять (скрывать) все диалоги запускаемой после распаковки программы?
Дело в том, что имеется исполняемый файл, который вместе с необходимыми для его работы файлами упакован в самораспаковывающийся архив, который при запуске отрабатывает полностью без вопросов, автоматически, но не в тихом режиме. А нужно, чтобы ничего не было видно. И было бы не плохо, если бы SFX молг принудительно подавить диалоги.
sayanvd,
hidcon
Скрывает консольные окна. Например:
RunProgram="hidcon:install.cmd"
выполнит "install.cmd" и полностью скроет его консольное окно.
Только так, а насчёт скрытия диалогов другого инсталлятора, то уже ищите ключи тихой установки для него.
Спасибо.
Понятно, значит, в общем, такого функционала нет. Буду искать другие решения.
Подскажите, пожалуйста, как заменить иконку в модифицированном SFX модуле через комстроку? Пытался
ResHacker.exe -addoverwrite 7zsd_LZMA2.sfx, 1.sfx, au.ico, icongroup, 101,
но файл 1.sfx не создаётся.
Также пробовал rt_add из соства Resource Tools от http://www.radialix.ru/, но все равно не получается.
Модуль 1.6 develop (сборка 2712) от 30 декабря 2012 г. Ось - WinXp 32. ResHacker - 3.6.0.92
Painkiller
08-05-2014, 17:14
Подскажите, пожалуйста, как заменить иконку в модифицированном SFX модуле через комстроку? Пытался
ResHacker.exe -addoverwrite 7zsd_LZMA2.sfx, 1.sfx, au.ico, icongroup, 101, »
Пример :
ResHacker.exe -modify KIS.exe, KIS2012.exe, 1.ico, icongroup, 101, 1033
Painkiller,
Читаем внимательнее
иконку в модифицированном SFX модул »
7zsd_LZMA2.sfx »
Подскажите, пожалуйста, как заменить иконку в модифицированном SFX модуле через комстроку? »не нужно.
Проще менять при сборке, например "кнопкой", тогда sfx модуль не затрагивается, а выходной EXE получается с нужной кнопкой.
не нужно.
Проще менять при сборке, например "кнопкой", тогда sfx модуль не затрагивается, а выходной EXE получается с нужной кнопкой. »
Нужно это сделать не какой-то "кнопкой", а из комстроки. Пусть иконка меняется не в модуле, а в выходном файле, но именно с помощью какой-нибудь утилиты для комстроки.
но файл 1.sfx не создаётся. »
Не подтверждаю! Все создается и иконка меняется (проверено).
Вообще, ResHacker пишет лог, который следует проанализировать, но он здесь не приведен.
Проблема надумана и не имеет ни какого отношения к модулю.
Вот подтверждение (http://rghost.ru/55111646) моей проблемы.
Вот полный лог ResHacker:
[12 май 2014, 22:24:15]
ResHacker.exe -addoverwrite 7zsd_LZMA2.sfx, 1.sfx, au.ico, icongroup, 101,
Так, что это не я что-то "надумал"....
Но я уже решил свою проблему - с помощью утилиты 7zsdrc.exe. Спасибо всем, кто действительно хотел помочь.
Пожалуйста выложите SFX-Делитель архивов... 7zSPLIT Давно не занимался все под растерял... Что то какие то отношение стали непонятные между пользователями... Я так понимаю все дело в репаках уж много этого хлама развелось... А простые люди страдают...
========================
Все нашел у автора.
leo.pine.58@fb
03-07-2014, 16:57
Гуру, помогите разделить архитектуры x86 и AMD64 с модифицированным модулем.
Моя задача: выполнять батник с учётом различий в архитектуре, т.к. батник использует, например, dism.exe, который, будучи запущенный в 32-битной консоли на 64-битной системе, отказывается работать.
Батник содержит строку DISM.exe /online /cleanup-image /spsuperseded /hidesp
Конфиг config.txt:
;!@Install@!UTF-8:x86!
Title="Kindred server system disk cleanup tool 2.0"
RunProgram="cleanup2.cmd"
;!@InstallEnd@:x86!
;!@Install@!UTF-8:x64!
Title="Kindred server system disk cleanup tool 2.0"
RunProgram="cleanup2.cmd"
;!@InstallEnd@:x64!
Проблема в том, что вне зависимости от указания платформенных секций, батник выполняется в среде архитектуры, которая использовалась для разархивирования. Если использовался модуль разархивации 32-битный (copy /b 7zsd_lzma.sfx+config.txt+cleanup2.7z cleanup2.exe), то и батник выполняется в 32-битной командной консоли, если модуль разархивации 64-битный (copy /b 7zsd_lzma_x64.sfx+config.txt+cleanup2.7z cleanup2.exe), то батник выполняется в 64-битной консоли, что ОК на 64-битных системах, но при этом на 32-битных системах экзешник не запускается вообще. Если же при сборке затолкать модули разархивации как для 32-битных так и для 64-битных систем, то получившийся SFX просто использует первый затолканный модуль и я опять сталкиваюсь с тем, что мой скрипт выполняется либо на всех ОС, но в 32-битной консоли, либо в 64-битной консоли на 64-битных системах, а на 32-битных не запускается вообще.
Кто виноват и что делать? Как сделать так, чтобы командная консоль соответствовала битности архитектуры, на которой запустился SFX?
Как сделать так, чтобы командная консоль соответствовала битности архитектуры, на которой запустился SFX? »
Используйте нужный префикс в строке запуска.
Можно не использовать секций.
;!@Install@!UTF-8!
Title="Kindred server system disk cleanup tool 2.0"
RunProgram="x86:cleanup2.cmd"
RunProgram="x64:cleanup2.cmd"
;!@InstallEnd@!или;!@Install@!UTF-8!
Title="Kindred server system disk cleanup tool 2.0"
RunProgram="%%P:cleanup2.cmd"
;!@InstallEnd@!
leo.pine.58@fb
03-07-2014, 18:50
Спасибо, гуру! Реально дед! Заработало!
Подскажите пожалуйста. Как запаролить архив и потом распаковать запароленный архив с помощью модифицированного SFX модуля.
Заранее спасибо.
Shift85, процитирую FAQ из шапки:
Нельзя. Модули с данной поддержкой официально недоступны. Пока, пользуясь своей "властью", я даю такие модули только тем, кто мне помогает/прикладывает какие-то усилия в развитии самого модуля, справки к нему и сопутствующих файло
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.