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

gora
17-05-2012, 19:30
а по моему случаю можете что-либо сказать? »
Случай тяжелый.
Вы дважды задаете вопрос о частичной распаковке, хотя я уже в первый раз Вам ответил, что это невозможно. Я занес это в FAQ в шапке, больше на него отвечать не буду.
заместо x86 можно вставить префикс? если да то как через батник запускать ехе с префиксом? »
По остальным Вашим вопросам я вижу, что Вы не изучали справку, что является обязательным. Вы даже не понимаете, что такое префикс, а в справке этому посвящен целый раздел.
Учите мат. часть.

gora
17-05-2012, 20:21
всё работает и копируется. Правда не знаю насколько это правильно. »
Как обещал возвращаюсь к Вашей проблеме.
SetEnvironment="PFx86=%ProgramFiles%\\Программа"
SetEnvironment="PFx64=%ProgramW6432%\\Программа"
RunProgram="setup.exe"
RunProgram="x64:hidcon:xCopy * \"%PFx64%\\\" /s /e /i /y"
RunProgram="x86:hidcon:xCopy * \"%PFx86%\\\" /s /e /i /y"
GUIMode="2"

То что у Вас не срабатывает Copy, но срабатывает xCopy наводит на мысль, что во время запуска этой команды папки назначения еще нет.
Объяснением этому может быть наличие дочерних процессов в Вашем setup.exe.
Модуль выполняет все строки последовательно. После запуска строки RunProgram="setup.exe" модуль ждет завершения процесса setup.exe и только после этого переходит к выполнению следующей строки. Но если процесс setup.exe порождает дочерний процесс (который продолжает производить некоторые операции, очевидно, и создание папки программы), а сам закрывается, то выполнение следующей строки конфига фактически начнется раньше завершения дочерних процессов (создания папки программы).

Для лучшего понимания я предлагаю Вам сделать SFX из следующего конфига (модуль должен быть 1.5 beta (сборка 2478) и выше):
;!@Install@!UTF-8!
BeginPrompt=" Проверка работы префикса 'waitall'

• Нажмите 'OK', будет произведен запуск Блокнота без 'waitall'

• Нажмите 'OK', удерживая [Shift], будет произведен запуск
Блокнота с использованием префикса 'waitall'"
RunProgram="hidcon:cmd /c Echo Start \"\" notepad.exe >test.bat"
RunProgram="hidcon:test.bat"

AutoInstall="hidcon:cmd /c Echo Start \"\" notepad.exe >test.bat"
AutoInstall="hidcon:waitall:test.bat"
GUIMode="2"
FinishMessage="Модуль завершил работу"
;!@InstallEnd@! Здесь используется два варианта запуска батника который в свою очередь запускает Блокнот.
При варианте запуска 'OK', Вы увидите открытие Блокнот и сразу же появится диалог FinishMessage. Почему же FinishMessage появился раньше чем Вы закрыли Блокнот? Потому что основной процесс test.bat запустил дочерний процесс (Блокнот) и после этого test.bat закончил работу. Нечто подобное происходит и в Вашем случае.
Теперь запустите вариант 'OK', удерживая Shift. Диалог FinishMessage появится только после того, как Вы закроете Блокнот, т.е., завершится дочерний процесс. Этому способствует префикс waitall (описание в справке), который я использовал во втором варианте.
Резюме: попробуйте запустить Ваш setup.exe с префиксом waitall. В любом случае это будет правильнее, т.к., копирование будет производится после полного завершения работы файла setup.exe.

bugmenotagain
18-05-2012, 11:13
gora, в справке не написано как из ком строки запускать файл с префиксом, вообще по справке много вопросов, если вы думаете что простой человек может разобраться, на задав ни одного вопроса, то ошибаетесь.

жаль что люди знающие хоть что-то не желают поделиться опытом с новичками.

alert30
19-05-2012, 17:58
Возможна такая реализация: распаковка файлов -> финишная табличка "Установка завершена! Сейчас будет перезагружен компьютер!" (на 15 сек.) -> и перезагрузка? Если возможна, то как сделать, чтобы после финишной таблички и затем исчезания (после встренной 15 сек.), компьютер автоматически перезагрузил.

gora
20-05-2012, 13:55
распаковка файлов -> финишная табличка "Установка завершена! Сейчас будет перезагружен компьютер!" (на 15 сек.) -> и перезагрузка? »
;!@Install@!UTF-8!
SetEnvironment="timer=15"
Title="Перезагрузка"
FinishMessage=" ВНИМАНИЕ !!!

Сейчас будет произведена перезагрузка компьютера."
; Перезагрузка
RunProgram="fm%timer%:forcenowait:hidcon:cmd /c CD /d ..\\&Ping -n %timer% localhost &Shutdown -r -f -t 0"
GUIMode="2"
GUIFlags="1+8+512"
;!@InstallEnd@!

nibble74
24-05-2012, 05:41
gora , а как прописать файл конфигурации чтобы перед распаковкой файлов происходило сканирование реестра?

Мне нужно так,
InstallPath="Вставляемый путь"

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

Просто на разных компьютерах эта программа может находиться в разных папках и даже на разных HDD.

gora
24-05-2012, 05:51
чтобы перед распаковкой файлов происходило сканирование реестра? »
В шапке FAQ п.1

Valerkan
27-05-2012, 00:42
FinishMessage=" ВНИМАНИЕ !!! Сейчас будет произведена перезагрузка компьютера." »
А что прописать в файле конфигурации, чтобы вместо перезагрузки было выключение компьютера?

specialist
27-05-2012, 00:46
Valerkan, пуск выполнить (win + r)
cmd /k Shutdown /?
изучите ключи и поправьте команду под себя

Valerkan
27-05-2012, 01:49
cmd /k Shutdown /?
изучите ключи и поправьте команду под себя »
specialist, заменил ключ
Shutdown -s -f -t 0
компьютер теперь выключается.

sov44
28-05-2012, 16:29
Подскажите, где ошибка в строке?
BeginPrompt="Сейчас будет установлен %Name% обновлённый по %Vers%"\n Возможные варианты установки:\n \n 1. Запуск с ключом '-ai1' - полная установка \n 2. запуск с ключом '-ai2' - установка только обновлений\n \n Использовать вариант №1 ?"
сам код (может ещё есть ошибки?)

;!@Install@!UTF-8!
SetEnvironment="Name=Microsoft Offise 2010 SP1"
SetEnvironment="Vers=12.05.2012"
Title="Установка %Name%"
BeginPrompt="Сейчас будет установлен %Name% обновлённый по %Vers%"\n Возможные варианты установки:\n \n 1. Запуск с ключом '-ai1' - полная установка \n 2. запуск с ключом '-ai2' - установка только обновлений\n \n Использовать вариант №1 ?"
FinishMessage="%Name%%Vers% установлен!"
ExtractTitle="Распаковка файлов..."
ExtractDialogText="Придется подождать..."
RunProgram="hidcon:cmd /c msksm.cmd"
AutoInstall1="hidcon:cmd /c msksm.cmd"
AutoInstall2="hidcon:cmd /c Update_office2010.cmd"
GUIFlags="2+4+8+16+32+2048+4096"
GUIMode="1"
;!@InstallEnd@!

alert30
28-05-2012, 17:01
sov44, а в чем ошибка?

sov44
28-05-2012, 17:27
alert30, пишет, что ошибка в строке 5

alert30
28-05-2012, 17:35
sov44, выделил подчеркнутым, лишняя кавычка.
Сейчас будет установлен %Name% обновлённый по %Vers%"

bugmenotagain
11-06-2012, 08:03
Подскажите, при использовании ключа -ai2 возможно ли добиться того чтобы появилось окошко выбора директории в которую будут распакованы файлы? вот текущая строка
AutoInstall2="hidcon:cmd /c xcopy folder \"%Var1%\" /s /e /i /y"
она не дает выбора, а распаковывает строго в 1 папку.

Вообще интересует возможность выбора папки распаковки если sfx архив запущен с префиксом -ai2 или любым другим.
спасибо

timon45
23-06-2012, 11:54
Можно ли реализовать установку ярлыка программы на панель задач, желательно сделать так чтобы данная команда была выполнена только на Win7?
читал что это можно реализовать через vbs скрипт, но без полного примера до 7zip SFX мне не дано понять.

вот http://forum.oszone.net/thread-197757.html#
нашел это но не совсем понимаю как его прикрутить к 7zip SFX

alert30
23-06-2012, 12:11
timon45, ну так в RunProgram надо влепить скрипт или как-то другое?

timon45
23-06-2012, 16:14
влепить скрипт или как-то другое? »
да, но как?

net_vip_person@vk
24-06-2012, 18:09
У меня вопрос. Модифицированный модуль, запущенный без параметров сразу начинает распаковку в InstallPath, при этом совершенно забывая спросить пользователя, куда бы он хотел распаковать файлы.
Детальнее тут (http://forum.oszone.net/post-1939314-1364.html).

gora
24-06-2012, 18:22
Детальнее тут. »
Там нет ни каких деталей.
1 Версия и номер сборки модуля ?
2 Конфиг полностью в тегах CODE ?




© OSzone.net 2001-2012