Показать полную графическую версию : Модифицированный SFX модуль 7-Zip'а для установок
тестовый вариант выложил для корректировки. (Чтобы понять где я допустил ошибку) » нигде.
все правильно.
всё работает.
http://i2.fastpic.ru/thumb/2010/0213/52/1206f6fc8dc46c6479a61b9a3444db52.jpeg (http://fastpic.ru/view/2/2010/0213/1206f6fc8dc46c6479a61b9a3444db52.png.html)
почему у вас Запускаю созданный rn.exe, вроде он пакетник запустил, но при этом он ничего не сдалал. »не понятно, всё что нужно, созданный rm.exe делает
Devils0411
13-02-2010, 22:02
Чудеса, только что, тоже запустил - работает.
Возможно ли организовать проверку наличия файла? Например, если есть файл с:\1.txt, то в диалоге 'FinishMessage' выводится сообщение "Файл присутствует", если этого файла нет, то в диалоге 'FinishMessage' выводится сообщение "Файла нет".
Вопрос, возможно, связанный не совсем с 7zSfx модулем, но всё же.
вот конфиг
;!@Install@!UTF-8!
Title="Установка программы MagicLogon 1.0"
BeginPrompt="Запустить установку MagicLogon в папку\n%ProgramFiles%\\MagicLogon ?"
ExtractTitle="Распаковка файлов..."
ExtractDialogText="Придется подождать..."
InstallPath="%PathInst%"
RunProgram="hidcon:reg add \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /f /v \"Смена Обоев и LogonUi\" /t REG_SZ /d \"\\\"%ProgramFiles%\\MagicLogon\\hidcon.exe\\\" \\\"%ProgramFiles%\\MagicLogon\\ml.cmd\\\" delay\""
RunProgram="hidcon:cmd /c copy magiclogon.wav %SystemRoot%\\Media"
RunProgram="nowait:hidcon:ML.cmd"
AutoInstall1="hidcon:reg add \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /f /v \"Смена Обоев и LogonUi\" /t REG_SZ /d \"\\\"%ProgramFiles%\\MagicLogon\\hidcon.exe\\\" \\\"%ProgramFiles%\\MagicLogon\\ml.cmd\\\" delay\""
AutoInstall1="hidcon:cmd /c copy magiclogon.wav %WinDir%\\Media"
AutoInstall2="hidcon:cmd /c copy magiclogon.wav %WinDir%\\Media"
SetEnvironment="PathInst=%PROGRAMFILES%\\MagicLogon"
Shortcut="D, {%%T\\hidcon.exe}, {%%T\\ML.cmd}, {}, {..и картинки в экране приветствия}, {Поменять обои...}, {%%T}, {%%T\\MagicLogon.exe}, {0}"
GUIMode="1"
GUIFlags="2094"
FinishMessage="MagicLogon установлен в папку %ProgramFiles%\\MagicLogon"
;!@InstallEnd@!
3 варианта запуска -
-ai2 - только скопировать wav в винодосовскую папку Media
-ai1 - скопировать wav в винодосовскую папку Media, записать программу в автозагрузку
без параметоров - скопировать wav в винодосовскую папку Media, записать программу в автозагрузку, запустить программу
проблемы с копированием при запуске на T13 - Wav файл не копируется :(
запускается как
ml2010.exe -ai1 -gm2
При запуске на уже установленой системе, проблемы нет, Wav файл копируется
И при запуске без параметров и при -ai1
Первоначальный вариант был с hidcon:cmd /c copy magiclogon.wav %SystemRoot%\\Media
потом заменил %SystemRoot% на %WinDir% ничего не поменялось.
самое обидное, на t13 обе переменных определены
ALLUSERSPROFILE=C:\Documents and Settings\All Users
COMMANDER_DRIVE=D:
COMMANDER_INI=D:\I386\SVCPACK\wincmd.ini
COMMANDER_PATH=D:\I386\SVCPACK
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=WINXP-2009
ComSpec=C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.JS;.WS
ProgramFiles=C:\Program Files
PROMPT=$P$G
SrcDosDrive=D:
SrcDosPath=D:
SystemDrive=C:
SystemRoot=C:\WINDOWS
Upgrade=False
USERPROFILE=C:\Documents and Settings\Default User
windir=C:\WINDOWS
__PROCESS_HISTORY=C:\WINDOWS\system32\setup.exe
в "нормальных" CMD файлах конструкции типа %SystemRoot% нормально отрабатываются.
никто с такими загадками не сталкивался ?
И в аддоне конструкторе TC7 вот такая конструкция
RunProgram="hidcon:cmd /c copy %NameInf% %WINDIR%\\INF"
прекрасно работает не только при запуске на живой системе, но и на T13
Dmitry_K
15-02-2010, 20:18
Возможно ли организовать проверку наличия файла? Например, если есть файл с:\1.txt, то в диалоге 'FinishMessage' выводится сообщение "Файл присутствует", если этого файла нет, то в диалоге 'FinishMessage' выводится сообщение "Файла нет" »
силами модуля нет, но можно реализовать задуманное при помощи cmd-vbs
RunProgram="hidcon:cmd /c copy magiclogon.wav %SystemRoot%\\Media" »
попробуй так
RunProgram="hidcon:cmd /c copy \"%%T\\magiclogon.wav\" \"%SystemRoot%\\Media\\magiclogon.wav\""
для других вариантов - соответственно
силами модуля нет, но можно реализовать задуманное при помощи cmd-vbs »
Подскажи, пожалуйста, как это сделать.
самое обидное, на t13 обе переменных определены »
Проблема может быть в существовании папки %SystemRoot%\\Media на T13. Команда Copy, в отличии от команды xCopy, не создает папку в случае ее отсутствия и ни чего не копирует в не существующую папку. Попробуйте сначала создать эту папку, а потом в нее копировать, или используйте команду xCopy.
силами модуля нет »
Да, нельзя, но если очень хочется, то можно. ;)
Демо-пример проверки наличия файла %SystemDrive%\mark.txt
Проблема может быть в существовании папки %SystemRoot%\\Media на T13 »Нет, эта папка существует.
Команда Copy, в отличии от команды xCopy, не создает папку в случае ее отсутствия и ни чего не копирует в не существующую папку. »Спасибо, не знал.
исходный посыл проблемы с копированием при запуске на T13 - Wav файл не копируется » оказался неверным
На самом деле, всё копируется, дело оказалось в аддоне "Sounds Vista 2.0", который полностью удаляет все стандартные звуки (и magiclogon.wav до кучи) из %SystemRoot%\Media :)
DrGrechkin
22-02-2010, 14:36
к сожалению модуль 7zsd_140_1659_x64 совершенно не запускается на WinXP x64 SP2 eng
выдает this application failed to start because the application configuration is incorrect.
при этом на win 7 работает нормально
WalkManX
22-02-2010, 19:55
Уважаемый Oleg_Sch а возможна сделать в контекстное меню Windows например пункт "7-zip SFX" и там подменю как в Total Commander-е при работе с 7z Button 1. Извлечь компоненты определенные в .ini файле (4) 2. Просмотреть файл конфигураций ну и т.д., т.е. проще говоря встроить 7z Button в контекстное меню проводника Windows... надеюсь вы поняли мою идею...
WalkManX, попробуйте сами с помощью FileMenu Tools 5.8 http://forum.oszone.net/thread-80611-9.html
WalkManX
22-02-2010, 20:07
Bond01, Да добавить пункты в контекстное меню не трудно и без FileMenu Tools а вот заставить программу заработать труднее... я вот добавил в реестр эту строчку [HKEY_CLASSES_ROOT\*\Shell\7zButton\command] @="C:\\Program Files\\7z SFX Tools\\Button.exe \"%L\"" но она не хочет работать... :( видать она настроена под TC
видать она настроена под TC » ага %L действует только внутри TC, вне его это просто 2 символа, от которых "кнопке" никакого толка :(
WalkManX
22-02-2010, 20:34
Amigos, Так я пробовал и с параметром %1 и без параметров результата нету, в принципе там что та фунциклирует запускается батник Y7AK3NDB.bat и 7zBUT.exe но коне4ного результата нету :(
WalkManX, прекращаем оффтопить! Обсуждение кнопки на форуме закрыто, есть вопросы, пишите в почту (ящик на странице кнопки).
Так я пробовал и с параметром %1 »
%L, %l, %F, %f, %D, %d создаёт файл списка в каталоге, заданном переменной TEMP, с именами выбранных файлов и каталогов и добавляет имя этого файла списка в командную строку. Список удаляется автоматически, когда запущенная программа завершается. Т.е. в TC "кнопка" получает имя временного файла, в котором перечисляются выделенные файлы.
В "проводнике" такого функционала (сохранить список выделенных файлов в текстовый файл) нету :(
RunProgram="hidcon:cmd /c If Exist \"%Windir%\\system32\\MarkerXP.m\" run.cmd" »
а как подправить тобы вместо выполнения после проверки происходила распаковка в нужную папку?
вместо выполнения после проверки происходила распаковка в нужную папку? »
Делайте "матрешку" и после проверки запускайте второй, внутренний sfx. Во втором и будет основной, сильно-сжатый архив, а первый sfx может быть просто оболочкой без сжатия (метод Copy) служащей только для запуска внутреннего при определенном условии и/или определенными ключами.
А вообще задача имеет три варианта решения:
1 "Матрешка"
2 Рекурсивный запуск SFX
3 Встроенный в SFX автономный архиватор
Вариант надо выбирать исходя из поставленной конкретной задачи и размеров самого архива.
gora, ну моя задача следующая:
1. Проверить по маркерному файлу какая винда XP или Seven.
2. Проверить наличие в каталоге, куда будет происходить распаковка, наличие exe файла программы. Если его там нет собственно и распаковать программу в каталог проверки.
3. Если была произведена распаковка то применить файлы реестра в соответствии с определением текущей Windows для XP или для Seven.
Размер архива в несжатом состоянии - 600 метров, при максимальном сжатии - 200. Как мне лучше поступить? Главная цель - быстрота распаковки в конечный каталог не забывая о сжатии
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.