Показать полную графическую версию : Модифицированный SFX модуль 7-Zip'а для установок
gora, большое спасибо за ответ, вы не могли бы дать ссылку на 7za.exe, забиваю в поиск, идут ссылки на простой 7z, а не который с командной строкой
дать ссылку на 7za.exe »Зачем Вам именно 7za.exe !? С ком. строкой прекрасно работает и 7z.exe (без интерфейса) и 7zG.exe (с интерфейсом) из комплекта самого архиватора. Но если нужен обязательно автономный вариант то посмотрите здесь (http://sourceforge.net/project/showfiles.php?group_id=14481) (7za457.zip )
gora, еще раз боьшое спасибо, буду изучать
gora, да нашел в папке 7zG.exe, но при двойном клике на него появляется сообщение: Specify command, понимаю, что делаю что-то не так, но что? как вызвать эту самую командную строку?
Данный диалог в этой ветке - оффтоп!!!
Воспользуйтесь поиском и найдите нужную Вам ветку или создайте свою тему (типа "Как использовать архиватор 7-Zip с командной строкой") в соответствующем разделе форума, если не найдете аналогичной, прочитайте справку к 7-Zip, ссылку я давал.Specify command, понимаю, что делаю что-то не так, но что? »Нужно определить ком. строку! Пример из справки:7z a -tzip archive.zip subdir\
добавляет все файлы и подкаталоги из каталога subdir в архив archive.zip. 7z - это как раз и есть 7z.exe (можете заменить на 7zG.exe). Как работать в консоли я писать не буду, надеюсь умете. Если нет, то это опять не в эту ветку.
Заканчиваем оффтоп!
$VARdead
19-12-2007, 23:28
а возможно убрать окно из панели пуск? типа WS_EX_TOOLWINDOW и убрать кнопку "Х".... неплохо было бы редактировать ети параметры вручную через restorator или тому подобное...
Здравствуйте!
Пытаюсь использовать модифицированный sfx модуль столкнулся с проблемой с параметром
OverwriteMode="x", при любых значениях x происходит повторное разворачивание архива.
прочитал последнее TODO не заметил там информации об исправлении. Поддерживаю потребность
в возможности не писать параметр RunProgram совсем, так как необходимо в том числе и просто
развернуть архив ничего не устанавливая, но и путь указывать не хочется.
Так же хотел бы добавить к TODO такую потребность как задание временной папки для распаковки
архива и корректную работу с ключом распаковки -o<Path>, сейчас при задании ключа распаковка
происходит в указанную папку но с созданием еще и временной папки по указанному пути. Возможно это както пересекается TODO по InstallPath, но хотелось бы разделять паки установки и папки распаковки и иметь возможность как удалять после распаковки временную папку так и нет(если вся задача только распаковать то удалять не надо).
Спасибо.
P.S.: Когда будит новая сборка?
Пытаюсь использовать модифицированный sfx модуль столкнулся с проблемой с параметром OverwriteMode="x", при любых значениях x происходит повторное разворачивание архива. »Приведите ваш файл конфигурации и что Вы понимаете под словом "разворачивание"? Подробнее, пожалуйста.
Еще есть вопрос возможно ли использование значений ключей в качестве переменных?
И еще, естли описание предопределенных переменных?
;!@Install@!UTF-8!
ExtractTitle="Распаковка базы приложения"
ErrorTitle="Ошибка распаковки!"
GUIFlags="1"
OverwriteMode="1"
...
;!@InstallEnd@!
Разворачивание - это повторная разархивация и индикация этого процесса
можно и просто разархивация :)
Извиняюсь что много вопросов :)
Как сейчас проще всего передать sfx путь?
Предыдущий пример не точный, я уже поправил конфиг
попробую дать более точный:
;!@Install@!UTF-8!
ExtractTitle="Распаковка базы приложения"
ErrorTitle="Ошибка распаковки!"
GUIFlags="1"
OverwriteMode="1"
InstallPath="%%S\\BackUp"
;!@InstallEnd@!
Вот не должен по идее ничего раз архивировать, или всетаки он раз архивирует и потом только сравнивает ине заменяет?
Если второе то не понятно зачем проводить разархивацию :(
Mechael, не надо сокращать свой файл конфигурации!!! Я что, должен догадаться, что у Вас скрыто под символами многоточия!? Параметр InstallPath там присутствует и т.д.? Здесь как у доктора на приеме: хотите получить диагноз - говорите без стеснения. ;)Разворачивание - это повторная разархивация и индикация этого процесса »И что Вас не устраивает!? Модуль распакует все во временную папку (сужу по отсутствию InstallPath в вашем файле) и ... 1 - не перезаписывать существующие файлы ... не перезапишет существующие файлы! Хотя папка временная, создается заново при каждом запуске 7z SFX архива и там не может быть старых файлов. :)
Вот теперь Вы решили таки привести полный файл (на будущее - заключайте его в теги CODE для лучшего восприятия)!
Вот не должен по идее ничего раз архивировать, или всетаки он раз архивирует и потом только сравнивает ине заменяет?
Если второе то не понятно зачем проводить разархивацию :(
А как модуль без разархивирования сравнит содержимое вашей папки и вашего архива!? В результате Вы получаете то что указали в файле конфигурации? Да!!! Значит модуль выполнил поставленную задачу и вопрос снят! Не хотите видеть ход распаковки - используйте соответствующие параметры.
Я не хочу прежде всего тратить время на установку, если устанавливать нечего, время и размер файла по логике должны быть зашиты в заголовке архива, мне не надо по байтового сравнения :)
Я то ожидал что распаковка не будит произведена если там куда распаковывает уже есть это :(. При больших архивах это достаточно существенно, в том числе и для экономии места , оперативной памяти, загрузки ЦПУ :).
вообщем то да параметр OverwriteMode работает, но хотелось бы чтобы он работал как описано выше.
Кстати в какое место разворачивается временный файл если задан InstallPath?
Oleg_Sch
20-12-2007, 12:48
а возможно убрать окно из панели пуск? типа WS_EX_TOOLWINDOW и убрать кнопку "Х".... неплохо было бы редактировать ети параметры вручную через restorator или тому подобное... »
вообщем то да параметр OverwriteMode работает, но хотелось бы чтобы он работал как описано выше »
Извиняюсь, но этого не будет. Надо учитывать массовые пожелания. Если размениваться на единичные - время на реализацию, увеличеный размер модуля из-за ненужных большинству функций и т.д.
Может быть для таких случаев поможет (когда будет реализована) система плагинов, соответствено, написание плагина под конкретный запрос, чтобы модуль не разрастался. Но пока ничего определенного сказать не могу. На данный момент я ориентируюсь на более частые запросы.
Кстати в какое место разворачивается временный файл если задан InstallPath? »
Если указан InstallPath - содержимое архива сразу разворачивается в указаную в InstallPath папку.
Сразу туда он не разворачивается так как не заменяет файл согласно параметру OverwriteMode.
Скорее всего OverwriteMode моде у вас уже работает на основании заголовка архива, просто почемуто еще и раз архивация идет полностью если даже ничего изменено не будет.
На вопрос:
Как сейчас проще всего передать в sfx путь?
есть ответ?
Oleg_Sch
20-12-2007, 14:42
Еще есть вопрос возможно ли использование значений ключей в качестве переменных? »
Ключей командной строки ? Если так - нельзя.
И еще, естли описание предопределенных переменных? »
http://7zsfx.solta.ru/ru/configinfo.html#vars
Другого (по части описания) ничего нет.
Можете еще посмотреть здесь (http://forum.oszone.net/post-517845-277.html) и здесь (http://forum.oszone.net/post-517853-278.html)
Сразу туда он не разворачивается так как не заменяет файл согласно параметру OverwriteMode.
Скорее всего OverwriteMode моде у вас уже работает на основании заголовка архива, просто почемуто еще и раз архивация идет полностью если даже ничего изменено не будет. »
Работает, работает... Но перед распаковкой и записью на диск конкретного файла проверяется его наличие и дата/время и принимается решение на основе OverwriteMode. Но в любом случае он распаковывается (пусть и без записи на диск). Т.е. это ответ на второе предложение в цитате.
Как сейчас проще всего передать в sfx путь?
есть ответ? »
Ответ будет при точно поставленом вопросе.
"Чей путь? Куда передать? Зачем?" и т.д.
Процитирую:
Только полный ответ, возможно, убережет от повторных "занудных" вопросов ;) . »
Real Root
09-01-2008, 22:05
По поводу пожеланий в новой версии:
Может уже говорили, но нельзя ли добавить возможность использования своей иконки.
Папример, командой copy /b icon.ico+7z.sfx+config.txt+file.7Z file.exe получается екзешник с нужной нам иконкой, но к сожалений не работоспособный. Может получиться реализовать подобный метод впаивания иконок?
Может уже говорили, но нельзя ли добавить возможность использования своей иконки. »Вы правы, этот вопрос уже неоднократно поднимался и обсуждался. Иконку нужно менять в ресурсах модуля, а ни какая команда copy или какая то другая этого сделать НЕ может! Для этого нужен какой то редактор ресурсов (Restorator, ResHacker и т.п.) Можете щелкнуть по ссылке в моей подписи и Вы навсегда забудете все эти copy /b ... и прочие "сложности" изготовления 7z SFX архивов ;)
Еще один вопросик появился, не смог найти информации по кодах ошибок возвращаемых sfx модулем, не подскажите ссылку на такую информацию, или может быть перечислите возможные коды и их значения?
Mechael, я думаю, что лучше изложить проблему, привести конфиг и сообщение об ошибке.
Извиняюсь что побеспокоил :)
Код ошибки оказался системный, ступил малость :(.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.