Показать полную графическую версию : Модифицированный SFX модуль 7-Zip'а для установок
Scorpkoms
08-03-2011, 18:02
Так, при условии, что REGSVR.bat попадает в папку %ProgramFiles%\Total Commander\Plugins\exe\REGSVR.bat »
Батник изначально находится там же,просто после выполнения
команды он больше не нужен.
Строка %%T\\%Var1%\\TCWSHelp.exe развернется в: %ProgramFiles%\Total Commander\%ProgramFiles%\Total Commander\Plugins\exe\TCWSHelp.exe, что явно неправильно. »
Но значек на "столе" и он срабатывает!
Scorpkoms
09-03-2011, 23:10
Доброго времени уважаемые!
Вопрос свой решил:
AutoInstall="hidcon:fm0:\%Var1%\\REGSVR.bat"
Delete="%Var1%\\REGSVR.bat" »
RunProgram="hidcon:fm0:\%Var1%\\REGSVR.bat"
Ж.Д.А.Л.К.Е.Р.
19-03-2011, 00:20
На основе SFX модуля сделал инсталятор с автоматическим выбором установки приложения в зависимости от битности ОС. Как сделать чтоб создавался ярлык для нужного ехе-шника ? Они с разными именами (как например в VirtualDub - VirtualDub.exe и Veedub64.exe).
Использую последнюю альфу модуля щербакова 7zsd_LZMA2.sfx
Первое: FinishMessage не появляется ни прикаких условиях т.е никакие игры с этими параметрами
GUIFlags
GUIMode
не помогают, даже если убрать их совсем. Но можно насильно показать через fm. Это так и задумано?
Второе: если в скрипте нет никаких команд запуска выводится сообщение что setup.exe не найден. Мелочь конечно, но...
Как сделать чтоб создавался ярлык для нужного ехе-шника ? »
Приведите файл конфигурации со строками создания обоих ярлыков, может что-то подскажу.Первое: FinishMessage не появляется ни прикаких условиях »
1 Приведите файл конфигурации полностью.
2 Укажите версию модуля.
3 Если версия модуля менее 1.5 alpha (сборка 1989), то обновите до указанной.
если в скрипте нет никаких команд запуска выводится сообщение что setup.exe не найден »
Читаем... :read: Если 'RunProgram', 'ExecuteFile', 'AutoInstall' или 'AutoInstallX' отсутствуют, и распаковка происходит во временную папку ('InstallPath' отсутствует), будет сделана попытка выполнить файл "setup.exe" (если он имеется в корне архива). "'InstallPath' отсутствует" означает - либо отсутствие параметра 'InstallPath' в файле конфигурации, либо InstallPath="", либо стирание пути, в соответствующем поле редактирования, после запуска архива. Если путь распаковки указан - попытки выполнить "setup.exe" не будет.
Приведите файл конфигурации полностью. »
Приводить пример для чего?
Я тоже сначало подумал, что дело в скрипте, а потом просто тупо взял модуль из архива 7zsd_140_1942 и все работает нормально
Читаем... »
Просто будет намного логичнее не указывать для общей ошибки конкретный файл, а выводить более содержательное сообщение . Например, с ненахождением команды запуска или невозможность выполнения запуска. Вобщем как-то так
пс Вы просили помогать в создании модуля. Я стараюсь :)
Ж.Д.А.Л.К.Е.Р.
22-03-2011, 22:00
gora Вот на примере VirtualDub, написал скрипт на автомате и только потом вспомнил что у х86 версии программы VirtualDub.exe, а у х64 Veedub64.exe. Теперь думаю как сделать ярлыки для нужного ехе-шника.
;!@Install@!UTF-8!
SetEnvironment="Ver=1.9.11 [x86/x64]"
SetEnvironment="ProgName=VirtualDub"
SetEnvironment="PrgMain=VirtualDub.exe"
SetEnvironment="PathInst=%SystemDrive%\\Program Files\\%ProgName%\\"
Title="%ProgName% v%Ver%"
BeginPrompt="Сейчас будет установлен %ProgName% v%Ver%"
ExtractTitle="Распаковка файлов..."
ExtractDialogText="Подождите пожалуйста..."
GUIFlags="2+4+8+16+32+2048+4096"
GUIMode="1"
FinishMessage="Установка завершена!"
RunProgram="x64:fm10:hidcon:cmd /c xcopy \".\x64\" \"%PathInst%\" /e /i /y"
RunProgram="x86:fm10:hidcon:cmd /c xcopy \".\x86\" \"%PathInst%\" /e /i /y"
Shortcut="D,{%PathInst%\\%PrgMain%},{},{},{},{%ProgName%},{%PathInst%},{},{}"
Shortcut="P,{%PathInst%\\%PrgMain%},{},{},{},{%ProgName%},{%PathInst%},{},{}"
;!@InstallEnd@!
Ж.Д.А.Л.К.Е.Р.,
Хороший вопрос, тоже интересно увидеть решение. Предполагаю, что решение возможно с префиксами.
Ж.Д.А.Л.К.Е.Р., попробуйте так:;!@Install@!UTF-8!
SetEnvironment="Ver=1.9.11"
SetEnvironment="ProgName=VirtualDub"
SetEnvironment="PrgMain_x86=VirtualDub.exe"
SetEnvironment="PrgMain_x64=Veedub64.exe"
SetEnvironment="PathInst=%SystemDrive%\\Program Files\\%ProgName%"
Title="%ProgName% v%Ver% [x86/x64]"
BeginPrompt="Сейчас будет установлен %ProgName% v%Ver% [%%P]"
ExtractTitle="Распаковка файлов..."
ExtractDialogText="Подождите, пожалуйста..."
GUIFlags="2+4+8+16+32+2048+4096"
GUIMode="1"
MiscFlags="4"
FinishMessage="Установка %ProgName% v%Ver% [%%P] завершена!"
RunProgram="%%P:fm10:hidcon:cmd /c xcopy %%P\\* \"%PathInst%\\\" /e /i /y"
RunProgram="x64:forcenowait:hidcon:cmd /c Ping -n 10 LocalHost>Nul& For %i In (\"%CommonDesktop%\" \"%UserDesktop%\" \"%7zSfxFolder23%\" \"%7zSfxFolder02%\") Do Del /Q \"%~i\\%ProgName%_x86.lnk\">Nul"
RunProgram="x86:forcenowait:hidcon:cmd /c Ping -n 10 LocalHost>Nul& For %i In (\"%CommonDesktop%\" \"%UserDesktop%\" \"%7zSfxFolder23%\" \"%7zSfxFolder02%\") Do Del /Q \"%~i\\%ProgName%_x64.lnk\">Nul"
Shortcut="D,{%PathInst%\\%PrgMain_x86%},,,,{%ProgName%_x86},{%PathInst%}"
Shortcut="D,{%PathInst%\\%PrgMain_x64%},,,,{%ProgName%_x64},{%PathInst%}"
Shortcut="P,{%PathInst%\\%PrgMain_x86%},,,,{%ProgName%_x86},{%PathInst%}"
Shortcut="P,{%PathInst%\\%PrgMain_x64%},,,,{%ProgName%_x64},{%PathInst%}"
;!@InstallEnd@!
Вы просили помогать в создании модуля. Я стараюсь »
2 Ruboard
Вас просили указать версию модуля и привести свой файл конфигурации, Вы ОТКАЗАЛИСЬ!
Это не помощь... (см. ОПК п.3.13)
Баг не подтверждаю!
У меня множество аддонов выложено с последним модулем (версия модуля 1.5 alpha сборка 1989) и везде FinishMessage работает и жалоб от пользователей не поступало.
Собственно назрел вопрос. Как можно удалить необходимую папку ДО установки?
Насколько я читал RunProgram, ExecuteFile, AutoInstall выполняются после распаковки.
Как можно удалить необходимую папку ДО установки?
Насколько я читал RunProgram, ExecuteFile, AutoInstall выполняются после распаковки. »
Установка и распаковка это разные этапы работы модуля. До распаковки ни каких действий произвести нельзя, модуль этого не предусматривает. А после распаковки начинается установка и первыми командами установки можно удалить "любую" папку (конечно, если ее вообще можно удалить).
Если Вы хотите удалить папку в которую нужно произвести установку программы, то распаковывайте SFX во временную папку, затем удаляйте, ту, которую хотите удалить, а затем производите установку/копирование/перемещение из временной папки, туда, куда сочтете нужным. Временная папка автоматически удалится после завершения работы SFX.
Oleg_Sch
09-04-2011, 02:54
Модули обновлены до 1.5.0.2079 (http://svn.7zsfx.info/listing.php?repname=7zSfxMod&path=/tags/1.5.0.2079/bin/)
* Переменная '%%P' не разбиралась параметрах команд 'Shortcut', 'ShortcutX' (gora:forum.oszone.net)
Oleg_Sch
11-04-2011, 14:46
Сайт (http://7zsfx.info/ru/) обновлен. Все благодарности за справку и обновление самого сайта - gora (http://forum.oszone.net/member.php?userid=8802)
Plastikat
19-04-2011, 10:20
Hi, All!
Прежде всего хочется поблагодарить автора обсуждаемого модуля - именно благодаря этому модулю я смог полностью переключиться с WinRar на 7zip. Спасибо.
А теперь об обнаруженной ошибке. Поискал по этому форуму - никто, вроде, не говорил об этом. Это, конечно, странно, но я сам обнаружил её не сразу. На основе обсуждаемого модуля мной был собран инсталлятор, в двух версиях: для x86 и для x64. Во время тестирования всё работало как задумывалось (в качестве тестовой платформы для x64 использовался Windows Server 2008 R2). Несколько позже инсталлятор был (впервые) запущен под Windows Server 2003 SP2, сразу после запуска выдал следующую ошибку:
The procedure entry point __CxxFrameHandler3 could not be located in the dynamic link library msvcrt.dll.
После отображения указанной ошибки модуль работу прекращает. Дальнейшие исследования показали, что поведение модуля под Windows XP SP2 x64 полностью аналогично, при этом под Windows 7 x64 / Server 2008 R2 всё работает нормально (Windows Vista x64 / Server 2008 x64 не тестировал, но, думаю, там тоже всё нормально).
Описанное поведение касается только модуля 7zsd_All_x64.sfx (другие x64 модули не тестировались, x86 модули работают нормально под всеми ОС). Ошибка обнаружена при использовании версии 1.4 (1795), в последней доступной стабильной версии 1.4 (1942) ошибка сохраняется.
Интернет говорит, что, скорее всего, эта ошибка может быть связана с определённой настройкой компилятора (или её отсутствием) в случае, если компиляция выполняется под новыми версиями Windows.
Oleg_Sch
19-04-2011, 15:16
Интернет говорит, что, скорее всего, эта ошибка может быть связана с определённой настройкой компилятора (или её отсутствием) в случае, если компиляция выполняется под новыми версиями Windows. »
Скорее всего интернет прав, там у меня собственные реализации исключений. Предлагаю перебраться в ПМ для дальнейшего обсуждения и решения проблемы.
Задавал 03.01.2011 вопрос, но тогда все еще от праздников не отошли и мой вопрос, видимо, не заметили или не поняли.
Есть SFX архив, который распаковывает ехе файл(установщик чего угодно) и запускает его с параметрами тихой установки. Реализуемо ли силами sfx модуля сделать так, чтобы во время тихой установки появлялось окно такого вида http://savepic.org/1701229.png с неактивными кнопками сворачивания, развертывания и закрытия окна и чтобы это окно исчезало, когда процесс тихой установки завершался? Как то так
Oleg_Sch
20-04-2011, 00:48
526549, силами модуля это невозможно
Привет всем. Извиняюсь, если немного не в тему, создаю например ярлык на рабочем столе такой командой:
Shortcut="D,{%%T\\UltraISO.exe},{},{},{Утилита для работы с образами дисков},{UltraISO},{%%T}"
Всё нормально, ярлык создаётся, но что прописать в *.inf, что бы после удаления программы ярлык с рабочего тоже удалялся?
Заранее благодарю за ответ.
Есть SFX архив, который распаковывает ехе файл(установщик чего угодно) и запускает его с параметрами тихой установки. Реализуемо ли силами sfx модуля сделать так, чтобы во время тихой установки появлялось окно такого вида »
Силами sfx - нет, вручную - можно.
Например, я делал так (фрагмент кода):
RunProgram="forcenowait:DreamWait.exe"
RunProgram="команда тихой установки"
RunProgram="hidcon:taskkill /im DreamWait.exe"
RunProgram="hidcon:ping -n 3 127.0.0.1"
Delete="%%T\\DreamWait.exe"
При этом DreamWait.exe - простенькая программа с желаемой надписью (чота выпалняецца) или картинкой. Если интересует - мой пример этой программы:
http://rghost.ru/5326187
(висит поверх, возможности закрыть нет, убивается через таскменеджер).
что прописать в *.inf, что бы после удаления программы ярлык с рабочего тоже удалялся? »
[PROG.DelShortcut]
Name =%SRTC_NAME%,0x00000002
SubDir =%PROG_SDIR2%
[Strings]
PROG_SDIR2 ="..\..\Рабочий стол"
SRTC_NAME ="UltraISO"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC