Показать полную графическую версию : Модифицированный SFX модуль 7-Zip'а для установок
После. »
жаль, значит нет смысла в моих маневрах
Возможно ли создание с помощью модифицированного модуля (или с помощью дальнейшей правки ехе-файла в hex-редакторе) файл, который не распаковывается стандартным 7-Zip-архиватором?
Подобное требуется, например, для того, чтобы невозможно было распаковать инсталлятор или, например, для того, чтобы антивирусы не могли распаковать инсталлятор и не ругались на упакованные в нем программы, которые ошибочно принимаются за вирусы.
Painkiller
10-01-2010, 17:30
DPavlik82 , по моему это уже обсуждалось. Модуль такого не умеет. По крайней мере в данный момент времени. Надеюсь автор в будущем это исправит . Хотя я как то один раз запаковал так что сам не мог распаковать ничем , но аддон к моему удивлению оказался рабочим.
Подскажите пожалуйста файл конфигурации для выполнения трех разных батников находящихся внутри SFX архива в зависимости от введенного ключа. Просмотрел несколько аддонов с ключами и не могу разобраться как сделать себе свой. Мне кроме трех ключей ничего не надо, просто тихая инсталяция, никаких дополнительных окон если без ключа запуск. Если ключа нет, то и делать ничего не надо. Спасибо.
Подскажите пожалуйста файл конфигурации для выполнения трех разных батников находящихся внутри SFX архива в зависимости от введенного ключа. »
\MagicLogon\sfx\ml 1.0.txt
;!@Install@!UTF-8!
Title="Установка программы MagicLogon 1.0"
BeginPrompt="Запустить установку MagicLogon в папку\n%ProgramFiles%\\MagicLogon ?"
ExtractTitle="Распаковка файлов..."
ExtractDialogText="Придется подождать..."
InstallPath="%PathInst%"
RunProgram="hidcon:reg add \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /f /v \"Смена Обоев и LogonUi\" /t REG_SZ /d \"\\\"%ProgramFiles%\\MagicLogon\\hidcon.exe\\\" \\\"%ProgramFiles%\\MagicLogon\\ml.cmd\\\" delay\""
RunProgram="nowait:hidcon:ML.cmd"
AutoInstall1="hidcon:reg add \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /f /v \"Смена Обоев и LogonUi\" /t REG_SZ /d \"\\\"%ProgramFiles%\\MagicLogon\\hidcon.exe\\\" \\\"%ProgramFiles%\\MagicLogon\\ml.cmd\\\" delay\""
AutoInstall2="hidcon:cmd.exe /c dir"
SetEnvironment="PathInst=%PROGRAMFILES%\\MagicLogon"
Shortcut="D, {%%T\\hidcon.exe}, {%%T\\ML.cmd}, {}, {..и картинки в экране приветствия}, {Поменять обои...}, {%%T}, {%%T\\MagicLogon.exe}, {0}"
GUIMode="1"
GUIFlags="2094"
FinishMessage="MagicLogon установлен в папку %ProgramFiles%\\MagicLogon"
;!@InstallEnd@!
вот это (батник из двух строчек) выполнится при запуске без папраметров
RunProgram="hidcon:reg add \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /f /v \"Смена Обоев и LogonUi\" /t REG_SZ /d \"\\\"%ProgramFiles%\\MagicLogon\\hidcon.exe\\\" \\\"%ProgramFiles%\\MagicLogon\\ml.cmd\\\" delay\""
RunProgram="nowait:hidcon:ML.cmd"
это (батник из одной строчки) выполнится при -AI1
AutoInstall1="hidcon:reg add \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /f /v \"Смена Обоев и LogonUi\" /t REG_SZ /d \"\\\"%ProgramFiles%\\MagicLogon\\hidcon.exe\\\" \\\"%ProgramFiles%\\MagicLogon\\ml.cmd\\\" delay\""
это (батник из одной строчки) выполнится при -AI2
AutoInstall2="hidcon:cmd.exe /c dir"
Если ключа нет, то и делать ничего не надо »
конкретно строчка cmd.exe /c dir равна "делать ничего не надо"
Подобное требуется, например, для того, чтобы невозможно было распаковать инсталлятор или, например, для того, чтобы антивирусы не могли распаковать инсталлятор и не ругались на упакованные в нем программы, которые ошибочно принимаются за вирусы. »
это довольно просто - запоролить архив.
Но "Модифицированный SFX модуль 7-Zip'а для установок" архивы с паролями не поддерживает.
А вот WinRar'овский SFX поддерживает.
Маленький нюанс, если включена опция "шифровать имена файлов", то запрос на ввод пароля будет в самом начале, до основного SFX диалога.
А если опция отключена, то запрос на ввод пароля будет после нажатия "распаковать" в основном SfX диалоге.
Формализация задачи:
1 Если ключа нет, то и делать ничего не надо »
2 выполнения трех разных батников находящихся внутри SFX архива в зависимости от введенного ключа »
3 никаких дополнительных окон »
Решение:;!@Install@!UTF-8!
; Запуск без ключа - ничего не делать.
RunProgram="hidcon:cmd /c Echo"
; Запуск с ключом ai1 - запустить бат файл batch1.bat.
AutoInstall1="hidcon:batch1.bat"
; Запуск с ключом ai2 - запустить бат файл batch2.bat.
AutoInstall2="hidcon:batch2.bat"
; Запуск с ключом ai3 - запустить бат файл batch3.bat.
AutoInstall3="hidcon:batch3.bat"
; Никаких окон.
GUIMode="2"
;!@InstallEnd@!
Добрый день всем, подскажите пожалуйста, в модифицированном SFX модуле имеется ключ для распаковки SFX архива в указанную папку (аналог обычного 7zip ключ -o)? Очень нужно поменять в коде
procedure CurStepChanged(CurStep: TSetupStep);
var
res:Integer;
s,s1:string;
begin
If CurStep=ssInstall
then
begin
s:=ExpandConstant('{src}')+'\Bin\bin.exe';
s1:=ExpandConstant('{app}');
Exec(s, '-y -o"'+ s1 + '"', '', SW_SHOWNORMAL, ewWaitUntilTerminated, res);
end;
end;
7z SFX архив bin.exe на модифицированный, в справке смотрел, не нашел, спасибо заранее!
подскажите пожалуйста, в модифицированном SFX модуле имеется ключ для распаковки SFX архива в указанную папку (аналог обычного 7zip ключ -o)? »
Имеется (-InstallPath), пишется так:sfx.exe -InstallPath="%ProgramFiles%\\7zSFX_Tools"
Спасибо огромное! Пол дня ходил вокруг да около... :yahoo:
Подскажите пожалуйста, а как сделать чтоб окно распаковки "Поверх всех окон" было?
Oleg_Sch
12-02-2010, 14:19
Новые версии модулей все же готовы.
1.4 alpha (сборка 1659) 12.02.10
+ Префиксы 'x64', 'x86' в конфигурационном файле
1.4 alpha (сборка 1643) 27.01.10
# Использован исходный код 7-Zip версии 9.10 beta от 22 декабря 2009 г.
# Проект полностью переведен на VS2005
* Сохранение позиций окна в ходе одного запуска SFX. Если выведенное окно перемешено пользователем, то все последующие окна выводятся в том месте, куда было перемещено предыдущее окно.
* Кнопка "Готово" в "собственном" диалоге 'FinishMessage' (7ZSD_LZMA_Dialogs.sfx) не меняет размер и положение при обратном отсчете времени
* Форматирование окна с информацией о версии SFX модуля и т.д. (ключ '-sfxversion')
+ Поддержка многоязыковых файлов конфигурации
+ Ключ '-sfxlang'
+ Прогресс-бар на значке SFX архива в панели задач для Windows 7
+ Флаг 8192 'GUIFlags' отключает прогресс-бар на значке SFX архива в панели задач для Windows 7
1.4 alpha (сборка 1599) 13.12.09
# Использован исходный код 7-Zip версии 9.09 beta от 12 декабря 2009 г.
* Некорректное извлечение сплитером архива и файла конфигурации (Stanner, gora:forum.oszone.net)
* Заменена иконка (некорректное отображение в Windows 7) (gora:forum.oszone.net)
* Некорректное определение языка в зависимости от региональных настроек системы (YuriPet:forum.oszone.net)
Пусть внешние изменения и незаметны, но внутренних изменений очень много, поэтому выкладываю их как есть для тестирования (только прямые ссылки):
x86 (i386) (http://7zsfx.info/files/alpha/7zsd_140_1659_x86.7z)
x64 (amd64) (http://7zsfx.info/files/alpha/7zsd_140_1659_x64.7z)
При баг-репортах, пожалуйста, указывайте полностью платформу системы и модулей (32 или 64 бита), версия и язык системы (включая сервис-паки).
Пока gora (http://forum.oszone.net/member.php?userid=8802), подготавливает справку постараюсь ответить на вопросы здесь. Не обижайтесь, если это будет неоперативно, мне сложно выделять сейчас время на модуль, но я все же постараюсь.
Тестируйте, пишите баг-репорты.
Oleg_Sch, x86 тестирую, вроде неплохо
Devils0411
13-02-2010, 16:35
Что-то не хочет запускаться пакетный файл (ни bat, ни cmd)
Система: WindowsXP x86 SP3 5.1.2600.5512
Скачал модифицированный SFX модуль (пробывал как стабильную версию, так и бета)
В тестовой папке, назовем ее Work лежат 3 файла: модифицированный SFX, конфиг файл (его содержимое: ;!@Install@!UTF-8! RunProgram="directory\\rn.cmd" InstallPath="%systemdrive%\\software" GUIMode="2" ;!@InstallEnd@! ), и соответственно сам архив *.7z. Собирается это все пакетником COPY /b *.sfx + *.txt + *.7z rn.exe
Запускаю созданный rn.exe, вроде он пакетник запустил, но при этом он ничего не сдалал. Захожу в папку где лежит пакетник rn.cmd, запускаю и он все отрабатывает. В чем причина?
Dmitry_K
13-02-2010, 19:49
В чем причина? »
попробуй
RunProgram="%%T\\directory\\rn.cmd"
при этом после распаковки rn.cmd должен лежать в %systemdrive%\software\directory\rn.cmd, т.е. папка directory должна быть корневой в архиве .7z
но при этом он ничего не сдалал. Захожу в папку где лежит пакетник rn.cmd, запускаю и он все отрабатывает. В чем причина? »в том, что sfx модуль не "заходит в папку где лежит пакетник rn.cmd".
попробуйте не "заходить в папку где лежит пакетник rn.cmd" а запустить его командой directory\rn.cmd в каталоге распаковки
Devils0411
13-02-2010, 20:45
Dmitry_K, RunProgram="%%T\\directory\\rn.cmd" что означает "%%T" ?
при этом после распаковки rn.cmd должен лежать в %systemdrive%\software\directory\rn.cmd, т.е. папка directory должна быть корневой в архиве .7z файл там и лежит.
Amigos, А разве RunProgram="directory\\rn.cmd" должен быть с одним слешем? На сайте товарища Oleg_Sch в примерах используется именно \\
должен быть с одним слешем? »в файле конфигурации sfx - двойным
в комадной строке - одинарный.
В тестовой папке, назовем ее Work лежат 3 файла: модифицированный SFX, конфиг файл » вам, судя по уровню вопросов, абстрактные советы не помогут, скачайте какой нибудь работающий sfx инсталятор и смотрите как там всё сделано,
или вариант - выложите свой нерабочий вариант, поправим
онфиг файл (его содержимое:
Код:
;!@Install@!UTF-8! RunProgram="directory\\rn.cmd" InstallPath="%systemdrive%\\software" GUIMode="2" ;!@InstallEnd@!
), и соответственно сам архив *.7z » внутри вашего 7z архива есть папка directory ?
или rn.cmd лежит прямо в корне 7z архива?
Devils0411
13-02-2010, 21:16
в комадной строке - одинарный.
Это я знаю ))
внутри вашего 7z архива есть папка directory ? или rn.cmd лежит прямо в корне 7z архива?
Да данная папка присутствует в архиве 7z.
тестовый вариант выложил для корректировки. (Чтобы понять где я допустил ошибку)
В чем причина? »
1 Файл конфигурации пишется столбиком, а не в одну строку.Собирается это все пакетником
Код:
COPY /b *.sfx + *.txt + *.7z rn.exe »
2 Возможно в папке есть посторонние файлы перечисленных типов.
3 Структура архива не соответствует пути запуска.что означает "%%T" ? »
... об этом написано ...На сайте товарища Oleg_Sch »
вроде он пакетник запустил, но при этом он ничего не сдалал »
4 Так запустил или не запустил?
Добавьте в конец файла rn.cmd команду Pause и увидите запускается он или нет. А также увидите что за ошибки будут написаны в этом консольном окне.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.