PDA

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


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 [13] 14 15 16 17 18 19 20 21 22 23 24 25 26

Dean_Winchester
14-06-2014, 20:11
Привет всем. Ребят, помогите пожалуйста, вопрос такой: добавил в sfx архив портативные программы, нужно чтобы при запуске программы, программа определяла виндовс, то есть если это виндовс хр то запускается файл допустим 1.ехе если нет до запускается файл допустим 2.ехе, как это правильно прописать в sfx архиве? Заранее огромное спасибо.

gora
14-06-2014, 20:25
виндовс хр то запускается файл допустим 1.ехе если нет до запускается файл допустим 2.ехе »
Попробуйте так:
;!@Install@!UTF-8!
; для Win XP
RunProgram="hidcon:cmd /c Ver | Find \"5.2\" >Nul && 1.ехе"
; для НЕ Win XP
RunProgram="hidcon:cmd /c Ver | Find \"5.2\" >Nul || 2.ехе"
;!@InstallEnd@!

Dean_Winchester
14-06-2014, 20:33
RunProgram="hidcon:cmd /c Ver | Find \"5.2\" >Nul || 2.ехе" »
да забыл если во втором случаем там 2 файла x32 и x64 то тогда как добавить еще чтобы и разрядность определял?
ага у меня получилось так
RunProgram="x86:hidcon:cmd /c Ver | Find \"5.2\" >Nul || myprog.exe"
RunProgram="x64:hidcon:cmd /c Ver | Find \"5.2\" >Nul || myprog64.exe"

Да, и еще такой момент, допустим в sfx лежит портативная программа, в sfx прописано что при запуске она распаковывается в %appdata% как сделать чтобы при следующем запуске, программа не распаковывала по новому ее в %appdata% а проверяла, если по пути %appdata%\myprog\ есть допустим файл myprog.exe то запустить ее, а если нет, то распаковать и запустить... Спасибо Огромное за помощь.

gora
14-06-2014, 21:09
в sfx прописано что при запуске она распаковывается в %appdata% как сделать чтобы при следующем запуске, программа не распаковывала »
Такое сделать невозможно. Сначала распаковка, а уже потом все действия. Читайте п1 FAQ в шапке.

Dean_Winchester
02-07-2014, 15:43
Ребят подскажите пожалуйста, как сделать, чтобы при установки программы 7zSFX ярлычок устанавливаемой программы закреплялся на панели задач и в меню пуск? То-есть как это прописать в config ?

Николй
07-07-2014, 15:40
Доброе время суток
Подскажите пожалуйста как избавиться от перезагрузки компьютера после тихой установки программы

Config.txt

;!@Install@!UTF-8!
RunProgram="AdobePhotoshopCS6.exe /VERYSILENT"
RunProgram="stop.bat"
GUIMode="2"
;!@InstallEnd@!

у меня вот так написан config.
Какую еще нужно прописать команду чтобы компьютер не перезагружался?
Если не в этом файле то где необходимо это сделать?

Amigos
07-07-2014, 15:44
как избавиться от перезагрузки компьютера после тихой установки программы »
найти ключ для AdobePhotoshopCS6.exe который отложит перезагрузку

Dean_Winchester
08-07-2014, 22:20
Подскажите пожалуйста, у меня есть программа но на виндовс 8.1 она не устанавливается, а устанавливается только в режиме совместимости с виндовс 7, так вот хотел узнать, как прописать это в конфиге, чтобы программа устанавливалась в режиме совместимости с виндовс 7(желательно чтобы команда определяла что это виндовс 8 и если это 8ка то она выполняет ее в режими совместимости с 7? Спасибо огромное.

gora
08-07-2014, 22:45
Dean_Winchester
Вопрос не имеет отношения к конфигам. Нет такого функционала у модуля и это ясно из справки, которую Вы должны были уже изучить.
Вам надо сначала решить задачу "чтобы программа устанавливалась в режиме совместимости с виндовс 7". Найдите возможность сделать это из батника \ vbs \ autoit и т.д. Это за Вас ни кто делать не будет. Потом это найденное решение (батник) запихните в архив и в конфиге пропишите его запуск. Получите что хотите.

ярлычок устанавливаемой программы закреплялся на панели задач и в меню пуск? »
Это тоже не вопрос модуля. Эта проблема решается на VBS и решение есть [решено] Создание ярлыка с помощью VBS (http://forum.oszone.net/thread-276798.html) .

nibble74
31-07-2014, 14:17
gora, Приветствую,

Возможно ли добавить параметр "type" который будет устанавливать ярлык exe-файла в папку "SendTo" ?

gora
31-07-2014, 14:50
nibble74, да, возможно, пример:
; Ярлык в контекстном меню->Отправить
Shortcut1="09,{%%T\\UniExtract.exe},{},{},{},{%CMENU%},{%%T},{%%T\\UniExtract.exe}"

timon45
31-07-2014, 15:14
Подскажите пожалуйста, у меня есть программа но на виндовс 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

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

nibble74
10-09-2014, 07:43
sov44, а чем в конфиге Delete= не устраивает ?

sov44
10-09-2014, 08:00
а чем в конфиге Delete= не устраивает ? »
Не прописать условие на проверку файла, только тупое удаление.

nibble74
10-09-2014, 08:12
sov44, в таком случае лучше все команды в батник прописать, а в конфиге делете. Вариантов множество. Хотя посмотрим, что gora, скажет.

gora
10-09-2014, 08:35
если не найден, прекращать исполнение sfx »
Команда RD не прекращает исполнение SFX, прекратить его можно командой TaskKill, но убирать мусор будет некому.
писать в каждой команде 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@!

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

sov44
09-10-2014, 10:06
Нужно найти определённую программу через батник (по хитрому, 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@!

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

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

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




© OSzone.net 2001-2012