Показать полную графическую версию : Модифицированный SFX модуль 7-Zip'а для установок
specialist
20-01-2013, 21:16
декоративный вопрос:
можно ли как то прописать в конфиге условие и потом назначить его переменной, чтобы впоследствии его результат при выполнении условия отображался в окне запущенного sfx?
например, логика такая:
если в момент запуска sfx до нажатия в его окне кнопок он находит рядом с собой некий файл по заданной маске имени, он присваивает переменной, которая будет дальше по тексту конфига, его имя.
"сейчас будет установлена такая-то программа %ADD%"
где %ADD% = если существует \"%%S\\add.exe\"
еще один вопрос:
есть переменная
SetEnvironment="unpack=hidcon:cmd /c if exist \"%%S\\Updates.exe\" Utils\\7z.exe x \"%%S\\Updates.exe\" -o\"%Temp%\\%Vers%\" -y"
которая после распаковки основного дистрибутива путем дораспаковки рядом находящегося файла обновлений добавляет их к дистрибутиву во временном каталоге и они устанавливаются уже силами самого установщика (подхват).
проблема, если ее можно так назвать в том - что прогрессбар основного дистрибутива при распаковке я вижу, а обновления распаковываются невидимо, или если убрать hidcon не очень эстетически красиво получается. файл обновлений имеет свой конфиг (может устанавливаться отдельно)
RunProgram="Updates.cmd"
AutoInstall="hidcon:Updates.cmd"
Delete="%Temp%\\2010"
т.е. если запустить его из основного sfx командой AutoInstall="%%S\\Updates.exe -ais" нужно чтобы визуально отображался прогрессбар распаковки, ничего после нее не запускалось и распакованные файлы бы не удалялись, а процесс Updates.exe закрывался после этой распаковки, но остальные опции бы остались справедливы для этого файла в случае его отдельного запуска...
есть ли какие то варианты это сделать?
apozlevich
20-01-2013, 21:26
specialist, могу точно сказать, что прогрессбар можно перехватить силами Inno Setup.
Чего-то на win8 никак не хочет запускаться модуль... Он вообще должен на новой винде работать?
specialist
21-01-2013, 13:50
Ruboard, да. для ответа на ваш вопрос нужно больше информации: приведите версию модуля, конфигурацию sfx модуля
приведите версию модуля, конфигурацию sfx модуля »
вопрос снимаю, разобрался... В windows 8 почему-то команда /qn не проходит, заменил на /qb
Limonica
31-01-2013, 12:05
Хмм, а как добится максимального сжатия, есть ли опция непрерывного сжатия?
Ж.Д.А.Л.К.Е.Р.
31-01-2013, 14:24
Limonica, Возьми 7-Zip (http://www.7-zip.org/) там есть Gui и консольная версия архиватора + справка по командам. Присутствует возможность непрерывного сжатия, а на счет максимального сжатия тут нужно быть осторожным. Ведь можно создать в Х64 версии 7-Zip такой архив который не сможет распаковаться под х86 ОС - ему просто не хватит озу (в х86 ОС есть ограничение - до 2гб озу на процесс).
При создании архивов я пользуюсь следующей командой: "%ProgramFiles%\7-Zip\7z.exe" a Temp.7z -r .\Temp\* -mmt2 -m0=BCJ2 -m1=LZMA2:d48m:fb273 -m2=LZMA2:d21:fb273 -m3=LZMA2:d21:fb273 -mb0:1 -mb0s1:2 -mb0s2:3 это позволяет использовать созданные установщики на ПК с 128мб озу, правда на работе железа меньше чем 256мб озу уже не осталось. Изменив размер словаря (в коде это число 48) увеличится степень сжатия и количество озу необходимое для распаковки, так что подбирай под свои потребности.
Ж.Д.А.Л.К.Е.Р.
31-01-2013, 20:51
Запускай 7zFM.exe.
Limonica
02-02-2013, 18:47
Очередная проблема, при использовании:
RunProgram="hidcon:reg add HKCU\SOFTWARE\MyProgram /v Pswd /t REG_BINARY /d 545046301154524F4D5365727665724F7074696F6E7300095573654E5441757468080D53656375726974794C6576656C0203 04506F727403121614456E61626C654F7665726C617943617074757265080C53686F775472617949636F6E080642696E6449 50060D416E7920696E746572666163651343616C6C6261636B4175746F436F6E6E656374091743616C6C6261636B436F6E6E 656374496E74657276616C023C0C50617373776F726444617461060C3665322B76777778394B453D084869646553746F7008 0C497046696C7465725479706502021750726F7465637443616C6C6261636B53657474696E6773091550726F74656374496E 6574496453657474696E6773090F446F4E6F7443617074757265524450080755736549507636091141736B55736572506572 6D697373696F6E0816557365725065726D697373696F6E496E74657276616C031027134175746F416C6C6F775065726D6973 73696F6E08134E656564417574686F72697479536572766572081F41736B5065726D697373696F6E4F6E6C79496655736572 4C6F676765644F6E0811557365496E6574436F6E6E656374696F6E0813557365437573746F6D496E6574536572766572080A 496E65744964506F72740317160D557365496E6574496449507636081444697361626C6552656D6F7465436F6E74726F6C08 1344697361626C6552656D6F746553637265656E081344697361626C6546696C655472616E73666572080F44697361626C65 5265646972656374080D44697361626C6554656C6E6574081444697361626C6552656D6F7465457865637574650812446973 61626C655461736B4D616E61676572080E44697361626C654F7665726C6179080F44697361626C6553687574646F776E0814 44697361626C6552656D6F746555706772616465081544697361626C65507265766965774361707475726508144469736162 6C654465766963654D616E61676572080B44697361626C6543686174081344697361626C6553637265656E5265636F726408 1044697361626C65415643617074757265081244697361626C6553656E644D657373616765080F44697361626C6552656769 73747279080D44697361626C65415643686174081544697361626C6552656D6F746553657474696E6773081544697361626C 6552656D6F74655072696E74696E67080A44697361626C6552647008144E6F746966794368616E67655472617949636F6E08 104E6F7469667942616C6C6F6E48696E74080F4E6F74696679506C6179536F756E6408064C6F675573650805536964496406 1034313330342E393335303432333134380D50726F787953657474696E67731426010000EFBBBF3C3F786D6C207665727369 6F6E3D22312E302220656E636F64696E235525554462D3136223F3E0D0A3C70726F78795F73657474696E677320766572736 96F6E3D223534303030223E3C7573655F70726F78793E66616C73653C2F7573655F70726F78793E3C70726F78795F7479706 53E303C2F70726F78795F747970653E3C686F73743E3C2F686F73743E3C706F72743E383038303C2F706F72743E3C6E65656 45F617574683E66616C73653C2F6E6565645F617574683E3C6E746D6C5F617574683E66616C73653C2F6E746D6C5F6175746 83E3C757365726E616D653E3C2F757365726E616D653E3C70617373776F72643E3C2F70617373776F72643E3C646F6D61696 E3E3C2F646F6D61696E3E3C2F70726F78795F73657474696E67733E0D0A0A4164646974696F6E616C0604303030301144697 361626C65496E7465726E65744964080B536166654D6F6465536574080000 /f"Выскакивает ошибка.
Ошибка появляется на XP (проверялось XP SP3), на 7 отрабатывает без нареканий.
Limonica
02-02-2013, 20:05
Методом тыка выяснилось предельное значение, если добавить ещё символ, ошибка неминуема:
RunProgram="hidcon:reg add HKCU\SOFTWARE\MyProgram /v Pswd /t REG_BINARY /d 36B5349507636091141736B557365725065726D697373696F6E0816557365725065726D697373696F6E496E74657276616C0 31027134175746F416C6C6F775065726D697373696F6E08134E656564417574686F72697479536572766572081F41736B506 5726D697373696F6E4F6E6C794966557365724C6F676765644F6E0811557365496E6574436F6E6E656374696F6E081355736 5437573746F6D496E6574536572766572080A496E65744964506F72740317160D557365496E6574496449507636081444697 361626C6552656D6F7465436F6E74726F6C081344697361626C6552656D6F746553637265656E081344697361626C6546696 C655472616E73666572080F44697361626C655265646972656374080D44697361626C6554656C6E6574081444697361626C6 552656D6F746545786563757465081244697361626C655461736B4D616E61676572080E44697361626C654F7665726C61790 80F44697361626C6553687574646F776E081444697361626C6552656D6F746555706772616465081544697361626C6550726 57669657743617074757265081444697361626C654465766963654D616E61676572080B44697361626C65436861740813446 97361626C6553637265656E5265636F7264081044697361626C65415643617074757265081244697361626C6553656E644D6 57373616765080F44697361626C655265676973747279080D44697361626C65415643686174081544697361626C6552656D6 F746553657474696E6773081544697361626C6552656D6F74655072696E74696E67080A44697361626C6552647008144E6F7 46966794368616E67655472617949636F6E08104E6F7469667942616C6C6F6E48696E76657273696F6E3D223534303030223 E3C7573655F70726F78793E66616C73653C2F7573655F70726F78793E3C70726F78795F747970653E303C2F70726F78795F7 47970653E3C686F73743E3C2F686F73743E3C706F72743E383038303C2F706F72743E3C6E6565645F617574683E66616C736 53C2F6E6565645F617574683E3C6E746D6C5F617574683E66616C73653C2F6E746D6C5F617574683E3C757365726E616D653 E3C2F757365726E616D653E3C70617373776F72643E3C2F70617373776F72643E3C646F6D61696E3E3C2F646F6D61696E3E3 C2F70726F78795F73657474696E67733E0D0A0A4164646974696F6E616C0604303030301144697361626C65496E7465726E6 5744964080B536166654D6F646553657408000000000000000000000000000000000000030342E393335303432333134380D 50726F787953657474696E67731426010000EFBBBF3C3F786D6C20766572736000000000000000000000000000000000 /f"
Это 2077 символов, автор ждем скорейшего разрешения проблемы.
Limonica
02-02-2013, 20:32
Кстатие, пути реестра тоже рекомендуется с двойными слешами выставлять?
Кстатие, пути реестра тоже рекомендуется с двойными слешами выставлять? »
Limonica, тут всё дело в экранировании символов, в справке по модифицированному модулю этот момент очень хорошо описан.
Если надо указать обратный слеш (\) (например, в путях или тексте диалога), НЕОБХОДИМО использовать ДВОЙНОЙ (\\)
Limonica
03-02-2013, 10:51
И так дополнение, к предыдущим постам. Ошибка проявляется так же и на Vista
Limonica, скриншоты кого-то заинтересовало в большом размере (http://forum.oszone.net/rules.html#3.9)?
specialist
03-02-2013, 20:57
использовал модуль 7zsd_LZMA2.sfx версии 1.50 2712
в win 8 x64 не отработала строка
RunProgram="x64:hidcon:cmd /c If Exist x64 xcopy /e /i /y x64 \"%%T\""
в win 7 x64 отрабатывает корректно.
PS: отбой - все дело было в непрописанных в винде в переменную path путях до системных файлов, в частности до xcopy
ErikPshat
10-02-2013, 00:46
Помогите пожалуйста с такой вроде бы нетривиальной ежедневной задачей, которую я уже часов 25 пытаюсь решить безуспешно...
Есть такая портативная программа которая лежит в папке "Portable Soft v5.5.0.0", а в этой папке куча файлов и соственно сам экзешник программы.
Я эту папку заархивировал, как Portable Soft v5.5.0.0.7z положил рядом модифицированный 7zsd_LZMA.sfx и рядом config.txt.
Стоит задача - из самораспаковывающегося SFX 7z извлечь эту папку и запустить экзешник, т.е. после распаковки в ту же папку запустить портативную программу.
У меня никак не удаётся запустить программу после распаковки. Выползает ошибка, что не найден путь\файл - Portable Soft v5.5.0.0\Soft.exe
Вот содержимое config.txt:
;!@Install@!UTF-8!
RunProgram="Portable Soft v5.5.0.0\Soft.exe"
GUIMode="2"
;!@InstallEnd@!
Где я допускаю ошибку?
Пробовал всевозможные синтаксические варианты:
RunProgram="Portable Soft v5.5.0.0\\Soft.exe"
RunProgram=\"Portable Soft v5.5.0.0\\Soft.exe\"
RunProgram=\"\"Portable Soft v5.5.0.0\"\\Soft.exe"
RunProgram="%%T\\Portable Soft v5.5.0.0\\Soft.exe"
RunProgram="Soft.exe"
Пробовал всевозможные синтаксические варианты: »
ещё вот такие не пробовали
RunProgram="\"Portable Soft v5.5.0.0\\Soft.exe\""
RunProgram="\"%%T\\Portable Soft v5.5.0.0\\Soft.exe\""
есть ли команда для добавления административного доступа к созданному sfx? То есть что б автоматические от администратора запускалось
То есть что б автоматические от администратора запускалось »
Теперь модулю можно указать "для работы мне необходимы права администратора". Он проверит, и если прав недостаточно, выдаст диалог "Run As" или предупреждение UAC о "Разрешить внесение изменений...".
Если пользователь вводит логин администратора или соглашается с запросом UAC, модуль осуществляет всю дальнейшую деятельность с правами админа.
Включается данная функция с помощью нового значения параметра "MiscFlags" - 4 (или ключом командной строки "-mf")
MiscFlags="4" »
Здравствуйте, сделал установщик с помощью модифицированного модуля 7-zip, он копирует файлы и в конце запускает мой AutoIT скрипт, так же добавляет его в автозагрузку...
Проблема в том, что сразу после установки, у скрипта не работает половина функций, лишь после перезагрузки и старта из автозагрузки, он начинает полностью выполнять свои функции...Есть ли решение проблемы?
;!@Install@!UTF-8!
MiscFlags="4"
RunProgram="nowait:\"%MyDocuments%\\Microsoft\\service.exe\""
Shortcut="T,{%%T\\Microsoft\\service.exe},{},{},{Службы Windows},{Службы Windows},{%%T\\Microsoft},{},{}"
InstallPath="%MyDocuments%\\"
OverwriteMode="0"
GUIMode="2"
Progress="no"
;!@InstallEnd@!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.