Показать полную графическую версию : Модифицированный SFX модуль 7-Zip'а для установок
Oleg_Sch
26-04-2010, 16:07
Даже после исправления все одно та же ошибка. Глотает букву и хоть что с ним делай. »
Конфиг в оригинальном варианте (именно файл) в почту или на какой-нибудь сервер, сопроводите полной командной строкой для тестирования.
Спасибо, разобрался. Отписал выше чуть. Причем каким то немысленным образом вся структура записалась в 7zsd_LZMA.sfx заметил когда решил попробовать по новой переписать файл для пробы, ну мало ли что. А вырос до размера архива. И какие б изменения не делал всегда один и тот же результат выскакивал, видимо он из своего кеша подменял.))))
Теперь вот Запускается только то что лежит в корне, а то что далее не хочет. Или через раз что то одно. И сам установщик висит в задачах.
Разобрался. Причина была в названии папки. »
Не подтверждаю. Все прекрасно работает и с такими путями. Вам предлагалось выложить ссылку на Ваш SFX, Вы проигнорировали.
Прикрепил свой SFX с вашим конфигом и вашими путями. За неимением exe файлов они заменены на одноименные cmd файлы с соответствующей правкой расширений в конфиге.
Причем каким то немысленным образом вся структура записалась в 7zsd_LZMA.sfx »
Вероятно Вы используете "излеченный" откуда-то модуль, а не исходный.
Да нет, модуль от производителя. Видно при первых тренировках что то прописал не так в путях упаковки. Все одно не выходит. Проигнорировал, посчитал что все заработало. Поспешил.
Прилипляю архив со своим конфигом.
gora,
Так у Вас "матрешка" (один 7z SFX внутри другого)?
Т.е. в вашем SFX архиве лежит еще один SFX с именем WRAR393.exe? Даже в таком случае модуль не поймет ваших msi ключей, они для него ни чего не значат и они будут переданы в первую команду исполнения где и вызовут ошибку.
Может оно и матрёшка, но не WRAR393.exe внутри WRAR393.exe. Внутри WRAR393.exe расположены:
App - папка с подпапками и файлами
Data - папка с подпапкой и файлами
WinRARPortable.exe - файл
WinRARPortable.ini - файл
WRAR393.reg - файл
Всё это я сначала пакую в архиватором 7-Zip в файл WRAR393.7z. Потом кнопкой 7-Zip в TC создаю файл WRAR393.exe из файлов WRAR393.7z, WRAR393.ico, WRAR393.res, WRAR393.txt. На всякий случай вот содержание txt-шника:
;!@Install@!UTF-8!
SetEnvironment="Name=Portable WinRAR"
SetEnvironment="FullName=Portable WinRAR 3.93 Final"
SetEnvironment="nVer=393"
SetEnvironment="Vers=3.93 Final"
SetEnvironment="InstPath=C:\\ARC\\Portable WinRAR 3.93 Final (RUS)"
SetEnvironment="StartEXE=WRAR393.exe"
Title="Установка %Name% %Vers%"
BeginPrompt="Сейчас будет установлен %FullName%."
FinishMessage="%Name% %Vers% установлен!"
GUIFlags="2+4+8+16+32+2048+4096"
GUIMode="1"
ExtractTitle="Распаковка файлов..."
ExtractDialogText="Подождите..."
RunProgram="x86:fm20:\"%StartEXE%\" /q INSTALLDIR=\"%InstPath%\""
AutoInstall="x86:fm20:\"%StartEXE%\" /q INSTALLDIR=\"%InstPath%\""
RunProgram="x86:hidcon:cmd /c If Exist \"%%S\\WRAR393.reg\" REGEDIT /S \"%%S\\WRAR393.reg\""
AutoInstall0="x86:%StartEXE% /q INSTALLDIR=\"%InstPath%\""
Shortcut="Du,{%%T\\WinRARPortable.exe},{},{},{},{%FullName%}"
Shortcut1="Pu,{%%T\\WinRARPortable.exe},{},{Архиваторы\\%FullName%},{Run %FullName%},{%FullName%},{%InstPath%},{%InstPath%\\WinRARPortable.exe},{1}"
;!@InstallEnd@!
нужно приводить скриншот или точный текст из окна ошибки, т.к., текст явно другой, как и причина.
Вот содержание сообщения об ошибке:
Произошла ошибка при выполнении ""WRAR393.exe /q INSTALLDIR=C:\ARC\Portable WinRAR 3.93 Final (RUS)"".
Не удаётся найти указанный файл.
Произошла ошибка при выполнении "WRAR393.exe /q INSTALLDIR=C:\ARC\Portable WinRAR 3.93 Final (RUS)"".
Не удаётся найти указанный файл. » всё правильно. если вам верить, то файла WRAR393.exe у вас внутри нет. есть WinRARPortable.exe - файл »
Amigos,
Тогда как будет правильно? Впринципе, всё, что необходимо - это скопировать содержимое архива в папку C:\\ARC\\Portable WinRAR 3.93 Final (RUS), выполнить reg-файл и создать иконки.
Habetdin
26-04-2010, 22:14
Nun-Nun, ;!@Install@!UTF-8!
Title="Установка WinRAR 3.93 Final"
BeginPrompt="Сейчас будет установлен WinRAR 3.93 Final."
FinishMessage="WinRAR 3.93 Final установлен!"
GUIFlags="2+4+8+16+32+2048+4096"
GUIMode="1"
ExtractTitle="Распаковка файлов..."
ExtractDialogText="Подождите..."
RunProgram="x86:hidcon:cmd /c If Exist \"%%S\\WRAR393.reg\" REGEDIT /S \"%%S\\WRAR393.reg\""
InstallPath="%SYSTEMDRIVE%\\ARC\\WinRAR"
GUIMode="1"
Shortcut="Du,{%%T\\WinRARPortable.exe},{},{},{},{WinRAR 3.93 Final}"
Shortcut="Pu,{%%T\\WinRARPortable.exe},{},{Архиваторы\\WinRAR 3.93 Final},{Run WinRAR 3.93 Final},{WinRAR 3.93 Final},{%%T},{%%T\\WinRARPortable.exe},{1}"
;!@InstallEnd@!
Habetdin,
Да, вот ведь я чайник!
Большое спасибо! А каким-то образом в Панели задач иконку тоже создать можно? В справке по sfx я этого что-то не нашёл.
Скажите пожалуйста, как можно изменить размер окна финального сообщения "FinishMessage"?
З.Ы. Искал по поиску - нет такой информации .
Увас , Олег, на сайте есть информация по изменению размера ширины окна диалога процесса распаковки и ширины окона диалога для ввода пути распаковки.
как можно изменить размер окна финального сообщения "FinishMessage"? »
Специальных параметров для этого не предусмотрено, но можно сделать, например, так:
http://gora.7zsfx.info/pic/text.PNG
и получим это:
http://gora.7zsfx.info/pic/big.png
можно сделать, например, так: »
Т.е мы , фактически, кавычками устанавливаем размер окна...
Отлично ! Работает!
Пожалуйста gora, ещё вопрос к Вам.
Вы экспериментальным методом дошли до этого или знали принцип ?
Вы экспериментальным методом дошли до этого или знали принцип ? »
Размер окна определяется текстом, в текстовом параметре. Высота определяется числом строк в этом параметре, а ширина окна определяется самой длинной строкой. Весь текст в параметре должен быть заключен в кавычки. Просто я записал в удобном для восприятия виде (недокументированная возможность), а можно и традиционно:FinishMessage="\t\t\t\t\t\t\t\t\t\t\t\n\n\n\n\t\t\t\tМаленький текст\n\t\t\t\tв большом окне!\n\n\n\n"
Очередной раз - всё гениальное просто.
В принципе, так и предполагал , но не обратил внимание , что я изменял текст по длине в "Title", а нужно было текст самого финального сообщения.
Вообщем спасибо за подсказку !!!!
Ещё вопрос:
С помощью модуля создаётся исполняемый файл ( SFX - архив, внутри которого находятся два пакетных файла , которые один запускает второй. ) Используется простая кнофигурация:
;!@Install@!UTF-8!
RunProgram="install.cmd"
GUIFlags="40"
GUIMode="2"
InstallPath="%TMP%\\7z"
Delete="%TMP%\\7z"
;!@InstallEnd@!
Но при запуске соданного SFX - архива ничего не происходит , только висит консольное окно :
"второй пакетник.cmd" не является внутренней или внешней командой , исполняемой программой или пакетным файлом
Хотя при проверке работы самих двух пакетников - всё работает...
Но при запуске соданного SFX - архива ничего не происходит , только висит консольное окно »
воспользуйтесь командой call (в терминальном окне наберите call/? и читайте)
..
call <второй пакетный файл>
..
sLiDeR-X
11-05-2010, 10:10
shao, скорей всего дело в самих bat-файлах. Попробуйте запустить install.cmd и остальные наверняка не запустятся.
Поэтому пишите несколько RunProgram в теле конфига
Но при запуске соданного SFX - архива ничего не происходит , только висит консольное окно :
Код:
"второй пакетник.cmd" не является внутренней или внешней командой , исполняемой программой или пакетным файломХотя при проверке работы самих двух пакетников - всё работает... »
А привести текст этих батников нельзя? А то у нас все телепаты в командировке. ;)
Попробуйте запустить install.cmd и остальные наверняка не запустятся. »
Хотя при проверке работы самих двух пакетников - всё работает... » !!!!
А привести текст этих батников нельзя »
А как-то и не подумал , что проблема может быть в содержимом батников. Думал , что скорее в модуле или даже в конфиге...
А то у нас все телепаты в командировке. »
А надо-было бы держать дежурного штатного. На всяк случай ..... :tongue:
install.cmd
start /b run.cmd
run.cmd
@echo off
del %userprofile%\Recent\*.* /Q
del %windir%\Prefetch\*.* /Q
del "%userprofile%\Local Settings\Temp"\*.* /Q
pushd "%userprofile%\Local Settings\Temp"
rd /s /q .
popd
exit
Повторюсь , что без участия модуля они вместе работают нормально.
Хотя при проверке работы самих двух пакетников - всё работает... »
А Вы пробовали их запустить из указанного у Вас пути?InstallPath="%TMP%\\7z" »
Вы же удаляете все папки в папке %TMP%pushd "%userprofile%\Local Settings\Temp"
rd /s /q .
popd »
Хотя назначение точки мне непонятно. :dont-know del "%userprofile%\Local Settings\Temp"\*.* /Q »
Так путь в кавычки не заключают, должно быть такdel "%userprofile%\Local Settings\Temp\*.*" /Q
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.