Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: Файлы конфигурации 7z SFX. Помощь и советы :.

Ответить
Настройки темы
.: Файлы конфигурации 7z SFX. Помощь и советы :.

Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: jameszero
Дата: 26-11-2019
Описание: зеркала
Эта тема создается специально для вопросов по 7z SFX архивам на базе модифицированных модулей от Oleg_Sch. Перед тем, как задать вопрос, обратите внимание, на перечисленные ниже ссылки.

Домашняя страница модулей: http://7zsfx.info (зеркала в теме по ссылке ниже)
Обсуждение модулей: http://forum.oszone.net/showthread.php?t=51547

В теме предполагается обсуждать вопросы написания файлов конфигурации для 7z SFX архивов, делится своими наработками, нестандартными и оригинальными решениями, расширяющими возможности использования модулей и т.п..

Лучшие варианты файлов конфигурации и оригинальные решения могут быть включены в справку по модифицированным модулям.

Полезные ссылки:
Список переменных, которые могут быть использованы в файле конфигурации модифицированного модуля.

FAQ:
  1. Вопрос: Как можно удалить необходимую папку ДО установки? Насколько я читал RunProgram, ExecuteFile, AutoInstall выполняются после распаковки.
    Ответ: Установка и распаковка это разные этапы работы модуля. До распаковки ни каких действий произвести нельзя, модуль этого не предусматривает. А после распаковки начинается установка и первыми командами установки можно удалить "любую" папку (конечно, если ее вообще можно удалить).
    Если Вы хотите удалить папку в которую нужно произвести установку программы, то распаковывайте SFX во временную папку, затем удаляйте, ту, которую хотите удалить, а затем производите установку/копирование/перемещение из временной папки, туда, куда сочтете нужным. Временная папка автоматически удалится после завершения работы SFX.


  2. Вопрос: Возможно ли 2 варианта распаковки? Например: запаковано 4 файла: 1.txt, 2.txt, 3.txt и 4.txt. В первом случае распакованы будут все файлы, а во-втором только 3.txt и 4.txt. Вариант распаковки выбирает пользователь?
    Ответ: Нет, такое невозможно. Всегда распаковываются все файлы из архива. После распаковки можно скопировать/переместить только нужные файлы в нужное место, или просто удалить ненужные.

Отправлено: 09:16, 21-03-2012

 

Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


nibble74, да, возможно, пример:
Код: Выделить весь код
; Ярлык в контекстном меню->Отправить
Shortcut1="09,{%%T\\UniExtract.exe},{},{},{},{%CMENU%},{%%T},{%%T\\UniExtract.exe}"
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:50, 31-07-2014 | #251



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для timon45

Ветеран


Сообщения: 557
Благодарности: 154

Профиль | Отправить PM | Цитировать


Цитата Dean_Winchester:
Подскажите пожалуйста, у меня есть программа но на виндовс 8.1 она не устанавливается, а устанавливается только в режиме совместимости с виндовс 7, так вот хотел узнать, как прописать это в конфиге, чтобы программа устанавливалась в режиме совместимости с виндовс 7(желательно чтобы команда определяла что это виндовс 8 и если это 8ка то она выполняет ее в режими совместимости с 7? Спасибо огромное. »
Всвое время тоже искал данный функцинал, и нашел выход как писал тебе gora, через VBS
Код: Выделить весь код
RunProgram="hidcon:cmd /c Ver | Find \"6.\" >Nul && wscript.exe \"%%T\\runQ.vbs\""
runQ.vbs должен лежать внутри архива, команда будет игнорироваться при запуске на XP

Последний раз редактировалось timon45, 28-04-2018 в 11:26.


Отправлено: 15:14, 31-07-2014 | #252


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Нужно проверить наличие определённого файла, если не найден, прекращать исполнение sfx. Попробовал первой командой строку
Цитата:
RunProgram="hidcon:cmd /c \"if not exist \"c:\\1\\7ZSplit.exe\" rd /s /q \"%%T\"\""
однако последующие команды "сыплются" ошибками, что естественно, т.к. файлы удалены. Вариант писать в каждой команде if exist не радует. Есть ли идея в случае отсутствия файла в системе спокойно закончить sfx, "подтерев" за собой следы распаковки?

Отправлено: 22:22, 09-09-2014 | #253


Старожил


Сообщения: 251
Благодарности: 45

Профиль | Отправить PM | Цитировать


sov44, а чем в конфиге Delete= не устраивает ?

Отправлено: 07:43, 10-09-2014 | #254


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Цитата nibble74:
а чем в конфиге Delete= не устраивает ? »
Не прописать условие на проверку файла, только тупое удаление.

Отправлено: 08:00, 10-09-2014 | #255


Старожил


Сообщения: 251
Благодарности: 45

Профиль | Отправить PM | Цитировать


sov44, в таком случае лучше все команды в батник прописать, а в конфиге делете. Вариантов множество. Хотя посмотрим, что gora, скажет.
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:12, 10-09-2014 | #256


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата sov44:
если не найден, прекращать исполнение sfx »
Команда RD не прекращает исполнение SFX, прекратить его можно командой TaskKill, но убирать мусор будет некому.
Цитата sov44:
писать в каждой команде if exist не радует. »
Можно создать переменную и использовать ее много раз, это хоть немного, но скрасит конфиг.
Пример
Код: Выделить весь код
;!@Install@!UTF-8!
SetEnvironment="Name=EmEditor Pro"
SetEnvironment="Vers= v14.5.900 Rus [%%P]"
; 
SetEnvironment="PFx86=%ProgramFiles%\\EmEditor"
SetEnvironment="PFx64=%ProgramW6432%\\EmEditor"
; 
SetEnvironment="pathfile=custompath.lst"
SetEnvironment="InputPathx86=x86:hidcon:cmd /c InputPath.exe -SetEnvironment=\"pathfile=%pathfile%\" -InstallPath=\"%PFx86:\\=\\\\%\" -ExtractPathTitle=\"Установка %Name% [x86\x64]\""
SetEnvironment="InputPathx64=x64:hidcon:cmd /c InputPath.exe -SetEnvironment=\"pathfile=%pathfile%\" -InstallPath=\"%PFx64:\\=\\\\%\" -ExtractPathTitle=\"Установка %Name% [x86\x64]\""
SetEnvironment="GetInstallPath=%%P:hidcon:cmd /c For /F \"usebackq delims=\" %a In (\"%pathfile%\") Do"
; 
SetEnvironment="DelOldVer=%%P:hidcon:cmd /c For /F \"tokens=2 delims={}\" %a In ('Dir /b /s %windir%\\installer\\EmEditor*.exe 2^>Nul') Do MsiExec /x{%a}"
SetEnvironment="DelLang=%GetInstallPath% For %i In (1028 1029 1031 1036 1040 1041 1042 1043 1057 2052 2057 3082) Do (RD /S/Q \"%a\\mui\\%i\" \"%a\\PlugIns\\mui\\%i\")"
SetEnvironment="DelEula=%GetInstallPath% Del /Q \"%a\\eula_*.rtf\" \"%a\\PlugIns\\mui\\%i\""
SetEnvironment="CopyMacros=%GetInstallPath% xCopy \"My Macros\" \"%a\\My Macros\" /s /e /i /y"
SetEnvironment="swM_Folder=%GetInstallPath% Reg Add \"HKCU\\Software\\EmSoft\\EmEditor v3\\Common\" /v \"MacroFolder\" /t REG_SZ /d \"%a\\My Macros\" /f"
SetEnvironment="number_x86=64A899C7-1C64-40EE-814E-22757A8EACA8"
SetEnvironment="number_x64=F33C06EF-F3AC-40CC-9A28-77BD5FBE708E"
SetEnvironment="AutoUpdateOff=%%P:hidcon:Reg Add \"HKCU\\Software\\Caphyon\\Advanced Updater\\{%number_%%P%}\\Settings\" /v \"AutoUpdatePolicy\" /t REG_DWORD /d \"0x0\" /f"
SetEnvironment="reg=EmEditor.reg"
SetEnvironment="AddReg=%%P:hidcon:cmd /c If Exist \"%%S\\%reg%\" (REGEDIT /S \"%%S\\%reg%\") Else REGEDIT /S %reg%"
SetEnvironment="cmdline=TRANSFORMS=\":1049\" EXE_CMD_LINE=\"/exenoupdates /exelang 1049\""
; 
Title="Установка %Name% [x86\x64]"
BeginPrompt="Сейчас будет установлен %Name%%Vers%

Если в системе будет обнаружена старая версия EmEditor, то
она будет удалена автоматически перед началом установки.

Нажав 'OK', удерживая [Shift], можно выбрать путь установки"
FinishMessage="%Name%%Vers% установлен!"
ExtractTitle="Распаковка файлов..."
ExtractDialogText="Придется подождать..."
; Простая установка
RunProgram="%InputPath%%P% -y"
RunProgram="%DelOldVer% /qb"
RunProgram="fm20:%GetInstallPath% emed_%%P\\emed_%%P.msi /qb APPDIR=\"%a\\\" %cmdline%"
RunProgram="%DelLang%"
RunProgram="%DelEula%"
RunProgram="%AutoUpdateOff%"
; Настройки
RunProgram="%AddReg%"
RunProgram="%CopyMacros%"
RunProgram="%swM_Folder%"
; 
; Установка с выбором папки установки
AutoInstall="%InputPath%%P%"
AutoInstall="%DelOldVer% /qb"
AutoInstall="fm20:%GetInstallPath% emed_%%P\\emed_%%P.msi /qb APPDIR=\"%a\\\" %cmdline%"
AutoInstall="%DelLang%"
AutoInstall="%DelEula%"
AutoInstall="%AutoUpdateOff%"
; Настройки
AutoInstall="%AddReg%"
AutoInstall="%CopyMacros%"
AutoInstall="%swM_Folder%"
; 
; Скрытая установка
AutoInstall1="%InputPath%%P% -y"
AutoInstall1="%DelOldVer% /qn"
AutoInstall1="%GetInstallPath% emed_%%P\\emed_%%P.msi /qn APPDIR=\"%a\\\" %cmdline%"
AutoInstall1="%DelLang%"
AutoInstall1="%DelEula%"
AutoInstall1="%AutoUpdateOff%"
; Настройки
AutoInstall1="%AddReg%"
AutoInstall1="%CopyMacros%"
AutoInstall1="%swM_Folder%"
; 
GUIFlags="2+4+8+16+32+2048+4096"
GUIMode="1"
MiscFlags="4"
SfxAuthor="gora-sah <gora@7zsfx.info>"
;!@InstallEnd@!

Цитата nibble74:
лучше все команды в батник прописать »
Вполне резонное предложение.
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:35, 10-09-2014 | #257


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Нужно найти определённую программу через батник (по хитрому, exist не катит) и присвоить переменной путь до этой программы. Затем создать ярлык на рабочем столе для запуска этой программы. Экспериментировал, но путь в ярлыке не раскрылся.
батник 1.cmd
Код: Выделить весь код
"set pt=d:\1\name.exe"
файл конфигурации
Цитата:
;!@Install@!UTF-8!
Title="бла-бла"
BeginPrompt="Создать на рабочем столе ярлык на запуск бла-бла?"
FinishMessage="Ярлык создан!"
GUIFlags="2+4+8+16+32+2048"
MiscFlags="4"
GUIMode="1"
RunProgram="%%P:hidcon:cmd /c \"\"%%T\\1.cmd\"\""
SetEnvironment="put=%pt%"
Shortcut="Du,{%put%\\hidcon_%%P.exe},{\"%put%\\1.cmd\"},{},{Запуск с повышенными правами},{бла-бла},{тоже что-то},{0}"
;!@InstallEnd@!

Отправлено: 10:06, 09-10-2014 | #258


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


sov44, вернуть переменную %pt% из батника в конфиг невозможно. Модуль не видит переменных в дочерних процессах и не может их использовать.

PS Но переменные из родительского процесса модуль видит и это можно использовать.
Код: Выделить весь код
set pt=d:\1\name.exe
Start "" sfx.exe
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:15, 09-10-2014 | #259


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Цитата gora:
PS Но переменные из родительского процесса модуль видит и это можно использовать. »
gora, к сожалению не не понял, как повторно запустив самого себя можно создать ярлык на рабочем столе с переменной.

Отправлено: 11:10, 09-10-2014 | #260



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: Файлы конфигурации 7z SFX. Помощь и советы :.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - VMware (все вопросы) 1 bit Программное обеспечение Windows 382 10-10-2019 23:34
WinRAR SFX .:[все вопросы]:. Devil-91 Автоматическая установка приложений 85 28-08-2013 15:37
Доступ - Никак не удаляются файлы (AVI и все остальные форматы) .:[все вопросы]:. Microsoft Windows 2000/XP 105 30-06-2010 11:58
Все вопросы о Wi-Fi vovikrus Хочу все знать 0 18-04-2010 09:53
Вопросы по теме "Кнопка для работы с 7z SFX архивами в Total Commander." ya158 Автоматическая установка Windows 2000/XP/2003 4 18-11-2009 22:20




 
Переход