Показать полную графическую версию : .: Файлы конфигурации 7z SFX. Помощь и советы :.
Только условный sfx.exe дважды распаковывается»
Я знаю минусы рекурсивного запуска, но тем не менее реально использую его в своих SFX.это минус в случае больших архивов »
Критиковать всегда легче чем искать решение. :sorry: Есть вариант без двойной распаковки, но от объяснений увольте ибо Я вот подумал и не нашел реального применения такой фиче. Опишите конкретный случай такой необходимости, может быть можно найти другие пути. Но случай должен быть конкретный и реальный, а не высосанный из пальца. »
на подобие -sfxwaitall »
Я не знаю такого ключа.
Критиковать всегда легче чем искать решение. »
И в мыслях не было критиковать :)
Я не знаю такого ключа. »
А он есть
http://storage8.static.itmages.com/i/16/0203/h_1454505302_7472109_45007a31b6.png
Используется самим модулем, как враппер. С помощью этого ключа можно, например вызвать любое консольное приложение со скрытием окна (или вообще как угодно) при этом не распаковывая сам sfx.exe.
any_sfx.exe -sfxwaitall:1 cmd /c "any_bat.bat"
Пример был под вторым спойлером тут
http://forum.oszone.net/post-2601984-334.html
Так нагляднее:
Простейший пример случая, при котором модуль использует враппер (возможно я это не верно обзываю, если что, прошу меня простить)
config.txt
;!@Install@!UTF-8!
BeginPrompt="Install this program?"
FinishMessage="Done"
RunProgram="hidcon:waitall:cmd /c pause"
;!@InstallEnd@!
Так выглядят дочерние процессы
http://storage9.static.itmages.com/i/16/0203/h_1454507036_9902471_84a1911dd1.png
Но никто же не запрещает использовать не совсем по прямому назначению )
Например вы говорили, что в некоторых своих sfx используете двойную распаковку, возможно этим способом можно было бы обойтись без двойной.
Вот я и хотел узнать какие еще параметры "умеет" модуль.
Наверное имеет смысл дождаться автора модуля :happy:
nibble74
18-02-2016, 23:48
gora, приветствую,
Тут возникла проблема с созданием ярлыка к файлу или папке в названии которой присутствуют символы xxx{xxxx}.
Возможно ли реализовать как нибудь в конфиге, чтобы созданный ярлык имел путь к файлу имя которого содержит знаки {} ?
nibble74, попробуйте сделать как это описано в справке:Если вам потребуется указать где-нибудь фигурную скобку (например, в 'decription') используйте двойную, т.е. {"Это описание со {{скобками}}"} даст результат "Это описание со {скобками}".
есть параметр SelfDelete="1" самоудаление после выполнения, а можно ли удалить и папку (вместе с её содержимым) из которой была запущена программа.
пробовал с nowait и ping
RunProgram="nowait:hidcon:cmd /c Ping -n 4 localhost && rd /S /Q \"%%S\""
но пока удалось удалить только содержимое каталога.
Это нужно для того чтобы написать своего рода программу Uninstaller
timon45, почему бы не использовать inf файл для установки и создание записи о деинсталяции ? Или не о том речь ?
но пока удалось удалить только содержимое каталога »
Возможно потому, что он занят во время удаления, так как является текущим для cmd.exe при выполнении cmd /c. (зависит о того, куда происходит распаковка)
Сделайте сначала переход в другую директорию, потом удаляйте.
RunProgram="nowait:hidcon:cmd /c Ping -n 2 localhost & cd /d %temp% && rd /S /Q \"%%S\""
А вообще идея удалять папку архивом - так себе идея.
timon45, в SetTools (http://forum.oszone.net/thread-172130.html) есть файл UnInstall.exe - это SFX на маленьком модуле. Он расположен в папке программы которую должен удалять при деинсталляции. Посмотрите его содержимое, может пригодится при решении Вашей задачи.
почему бы не использовать inf файл для установки и создание записи о деинсталяции »
запарился уже с ними, вроде делаю все правильно, на XP x-32 работает на 7-ке нужно править пути для x-64 прописывать отдельные условия, при удалении на 7-ке иногда не удаляет папку с программой??? хотя в inf-е как бы все правильно, править его парой бывает очень сложно конвертировать ключи реестра команды запуска и т.п., одним словом я запарился, вот и пришла такая идея делать средствами модуля.
timon45, в SetTools есть файл UnInstall.exe »
ок гляну.
nibble74
17-03-2016, 14:44
gora,
Не удаётся создать ярлыки для файлов (*.chm и *.url). Нет поддержки ???
Ошибка - не найден exe файл.
Не удаётся создать ярлыки для файлов (*.chm и *.url). Нет поддержки ??? »
Для *.url я ярлыков не создавал, а для *.chm можете посмотреть пример в 7z SFX Tools (http://7zsfx.info/files/7zsd_tools_170_3873.exe)
nibble74
17-03-2016, 15:52
Я даже не знал, что новая версия модулей вышла. :oszone: Спасибо посмотрю.
Не удаётся создать ярлыки для файлов (*.chm и *.url). »
«.url» — это и есть ярлык. Особого типа.
nibble74
17-03-2016, 18:30
Походу и так всё нормально отображается
Shortcut="P,{%%T\\Website.url},{},{ProgFolderName},{},{Веб сайт},{},{shell32.dll},{13}" - shell32.dll windows 8.1
Shortcut="P,{%%T\\Help.chm},{},{ProgFolderName},{},{Справка},{},{hh.exe}"
Здравствуйте,
Пытаюсь воспользоватся 7zsd_LZMA_Dialogs.sfx(стабильная версия 1.6.1.3873) для установки ПО в выбранную директорию.
конфиг такой:
;!@Install@!UTF-8!
Title="Инсталятор Информационного терминала"
BeginPrompt="\nНачать установку Терминала \n Ярлык будет помещен на ваш Рабочий стол."
CancelPrompt="Вы хотите прервать установку?"
ExtractDialogText="Подождите, пожалуйста..."
ExtractPathText="Пожалуйста, путь установки:"
ExtractTitle="Установка..."
GUIFlags="4+8+32+64+256+4096"
GUIMode="1"
InstallPath="%SfxFolder26%\\Terminal"
OverwriteMode="0"
Shortcut="Du,{%%T\\Terminal.exe},{},{},{Запуск Терминала },{Инфотерминал},{},{%%T\\7ZSplit.exe},{0}"
SelfDelete="1"
;!@InstallEnd@!
1 - что совершенно неполучается сделать - это назначить значение %sfx_homepage% а то она видна на главной страничке после запуска sfx модуля.
2 - с помошью ResourceHacker не получается поменть все иконки в 7zsd_LZMA_Dialogs.sfx, после замены одной все остальные пропадают. ( в далеком 11 году мне это с тогдашним модулем sfx получалось сделать)
Подскажите please ;)
неполучается сделать - это назначить значение %sfx_homepage% »
Задайте одноименную переменную в конфиге:
SetEnvironment="sfx_homepage=http://7zsfx.info"
не получается поменть все иконки в 7zsd_LZMA_Dialogs.sfx »В модуле имеется только одна иконка, других иконок в модуле нет.
21f1nger@vk
07-04-2016, 10:30
Почему при запуске с -ai и -ai1 висит 2 процесса в диспетчере и можно ли сделать так чтобы процесс был 1?
Скриншот http://forum.oszone.net/attachment.php?attachmentid=135730&stc=1&d=1460013636
Готовый файл:
https://cloud.mail.ru/public/6xwH/2NDr53EvK
Конфиг:
;!@Install@!UTF-8!
Title="Media Player Classic - Home Cinema - x86"
BeginPrompt="Media Player Classic HomeCinema - удобный во всех планах мультимедийный проигрыватель.
Он построен на базе классического плеера Media Player Classic и одного из лучших наборов
медиа-кодеков ffdshow, и благодаря этому может проигрывать многие форматы видео
и аудио файлов без установки внешних кодеков.
Этот плеер имеет большое количество различных функциональных возможностей:
он умеет воспроизводить DVD диски, умеет аппаратно декодировать популярный формат
H.264 на видеокартах последнего поколения, умеет корректно работать со вторым
монитором (телевизором), поддерживает различные виду субтитров, умеет работать
с форматами QuickTime и RealVideo и т.д. Плеер имеет небольшой размер и полностью
понятный и не перегруженный излишними функциями интерфейс.
- Для установки в папку Program Files - нажмите OK
- Для установки в желаемую папку - укажите путь установки и нажмите OK
- Для запуска из самоудаляемой временной папки - нажмите OK, удерживая SHIFT
- Для запуска из НЕудаляемой временной папки выполните этот файл с ключем -ai1
- Для установки в НЕудаляемую временную папку выполните этот файл с ключем -ai2
"
ExtractPathText="Пожалуйста, выберите путь установки:"
ExtractDialogText="Подождите, пожалуйста..."
CancelPrompt="Вы хотите прервать установку?"
FinishMessage="Установка завершена!"
ExtractTitle="Выполняется распаковка..."
HelpText="Тут пока что пусто))"
BeginPromptTimeout="-120"
ExtractDialogWidth="400"
;показывать таймеры и окна отмены/распаковки/завершения (0-1-2)
GUIMode="1"
;возможно изменить путь извлечения (для отключения убрать 64)
GUIFlags="2+8+32+64+256+2048+4096"
;запрашивать права администратора при выполнении
MiscFlags="4"
;перезаписывать только те файлы, которые старее + пропускать файлы заблокированные системой
OverwriteMode="2"
;получаем полный путь распаковки в переменную InstallPath, которая не указана в конфиге
SetEnvironment="InstallPath=%%T"
;создаем переменую с именем папки программы
SetEnvironment="PF=MPC-HC-x86"
;создаем переменую с именем файла программы
SetEnvironment="PN=mpc-hc.exe"
;установка в Program Files по умолчанию или в выбранную папку
;Если в названии пути есть 7ZipSfx, значить копируем и устанавливаем в Program Files.
RunProgram="fm10:hidcon:x86:cmd /c if not \"%InstallPath%\" equ \"%InstallPath:7ZipSfx=%\" (xCopy * \"%ProgramFiles%\\\" /s /e /i /y && \"%ProgramFiles%\\%PF%\\%PN%\" /regvid /regpl) else (\"%PF%\\%PN%\" /regvid /regpl)"
RunProgram="fm10:hidcon:x64:cmd /c if not \"%InstallPath%\" equ \"%InstallPath:7ZipSfx=%\" (xCopy * \"%ProgramW6432%\\\" /s /e /i /y && \"%ProgramW6432%\\%PF%\\%PN%\" /regvid /regpl) else (\"%PF%\\%PN%\" /regvid /regpl)"
;запуск из самоудаляемой временной папки
;AutoInstall="hidcon:shc0:cmd /c \"%PF%\\%PN%\""
AutoInstall="waitall:shc0:\"%PF%\\%PN%\""
;запуск из НЕудаляемой временной папки
AutoInstall1="hidcon:cmd /c xCopy * \"%TEMP%\\PORTABLE\\\" /s /e /i /y && start /w /d \"\" \"%TEMP%\\PORTABLE\\%PF%\\\" %PN%"
;установка в НЕудаляемую временную папку
AutoInstall2="fm10:hidcon:cmd /c xCopy * \"%TEMP%\\PORTABLE\\\" /s /e /i /y && start /w /d \"\" \"%TEMP%\\PORTABLE\\%PF%\\\" %PN% /regvid /regpl && start /w /d \"\" \"%TEMP%\\PORTABLE\\%PF%\\\" %PN%"
;Создание ярлыков
Shortcut="Su,{%SystemDrive%\\Program Files\\%PF%\\%PN%},{},{Мультимедиа},{Media Player Classic Home Cinema - удобный во всех планах мультимедийный проигрыватель.},{%PF%}"
Shortcut2="Su,{%TEMP%\\PORTABLE\\%PF%\\%PN%},{},{Мультимедиа},{Media Player Classic HomeCinema - удобный во всех планах мультимедийный проигрыватель.},{%PF%}"
;!@InstallEnd@!
21f1nger@vk, попробуйте разделить копирование и запуск ai1
;запуск из НЕудаляемой временной папки
AutoInstall1="hidcon:cmd /c xCopy * \"%TEMP%\\PORTABLE\\\" /s /e /i /y"
AutoInstall1="\"%TEMP%\\PORTABLE\\%PF%\\%PN%\""
21f1nger@vk
07-04-2016, 23:32
sov44, но в -ai прописан обычный запуск, ничего вроде бы сложного нет. Все равно 2 процесса висит, при запуске с -ai
21f1nger@vk, архив сам себя перезапускает для элевации прав.
Это нормально
http://storage8.static.itmages.com/i/16/0407/h_1460068796_7756571_088c85eb93.png
Чем мешает второй процесс ?
Если очень хочется, то поправьте манифест в sfx модуле:
Измените строку
<requestedExecutionLevel level="asInvoker" uiAccess="false">
на
<requestedExecutionLevel level="highestAvailable" uiAccess="false">
Или сразу запускайте с правами администратора
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC