Показать полную графическую версию : .: Файлы конфигурации 7z SFX. Помощь и советы :.
зачем нужна эта тема при наличии »
Я постарался это объяснить в шапке.
1 Сейчас вопросы по файлам конфигурации задаются в разных ветках форума и не только в ветке модуля. Уже бывает и не вспомнить в какой из веток отвечал на повторяющийся многократно вопрос. Искать эти ответы по всем веткам затруднительно, а так все будет сосредоточенно в одной ветке.
2 В ветке модуля лучше обсуждать фунционал модулей, баги модулей, запрашивать новые возможности, а обсуждение конкретных файлов конфигурации, иногда очень простых и описанных в справке, там не не устраивать.
3 Править шапку и добавлять в нее FAQ мне здесь можно самому не обращаясь к автору модулей или модераторам. (зачем дергать занятых людей по пустякам).
Если Вы считаете, что она не нужна, то ее всегда можно закрыть (мне меньше забот).
1. Неубедительно.
Сейчас вопросы по файлам конфигурации задаются в разных ветках форума »
а так все будет сосредоточенно в одной ветке »
С чего вдруг такое чудо произойдет? Раньше была одна тема по модулю. Теперь еще одну создали, и почему-то верите, что все сразу побегут в нее :) Ах да, вы теперь будете посылать из старой в новую, вместо ответа на месте. Из темы про кнопку тоже будете сюда посылать?
2. Частично согласен, но тогда из старой темы нужно вынести все вопросы по конфигам. Это вы с модераторами не согласовывали, очевидно. Что касается багов, то их может запостить 1-2 человека. Для остальных - "не работает" = "баг".
3. Ничто не мешает вести FAQ в отдельном посте или Wiki, а ссылку дать в шапке.
Короче, в текущем виде я не вижу смысла в этой теме, ибо это дублирование уже существующей темы.
МИШАНЧИК
02-05-2012, 13:03
gora, только что попробовал запустить на физической машине х86(до этого на х86 не пробовал). Всё установилось и скопировалось без проблем. Тут же на виртуальной машине х64 пробую этот же архив-выдаёт: не удаётся найти файл.
Попробовал как Вы писали раньше:
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"
Так и установилось всё и скопировалось. Правда скопировался и лишний, ненужный setup.exe.
МИШАНЧИК
03-05-2012, 07:09
gora, сделал почти так, как Вы писали тут http://forum.oszone.net/post-1908642-25.html:
в архиве создал папку rus и в неё поместил файл setup_rus.exe:
SetEnvironment="PFx86=%ProgramFiles%\\Программа"
SetEnvironment="PFx64=%ProgramW6432%\\Программа"
RunProgram="setup.exe"
RunProgram="x64:hidcon:xCopy Rus\\* \"%PFx64%\\\" /s /e /i /y"
RunProgram="x86:hidcon:xCopy Rus\\* \"%PFx86%\\\" /s /e /i /y"
всё работает и копируется. Правда не знаю насколько это правильно. И ещё не пойму куда в данном случае распаковывается архив. Во временной папке его нет.
Большое Вам спасибо за помощь.
bugmenotagain
05-05-2012, 17:00
а что значат в этой строке
RunProgram="waitall:test_waitall.bat /VERYSILENT /LOADINF=\"progr.ini\""
эти параметры?
/VERYSILENT /LOADINF=\"progr.ini\""
bugmenotagain, параметры похожи на Inno Setup.
а что значат в этой строке
эти параметры? »
C позиции файла конфигурации - ни чего не значат. Все эти параметры будут просто переданы в test_waitall.bat, а что там с ними будет сделано определяется содержанием батника.
По поводу префикса waitall. Воздержитесь пока от его использования, т.к., в нем обнаружен баг и Олег обещал поправить это в ближайшее время.
МИШАНЧИК, ответ Вам отложен до исправления бага, чтобы можно было объяснить Вашу проблему с примерами ее решения.
firsthar
05-05-2012, 19:01
как передать кириллицу через командную строку?
отправляю...
test.exe -SetEnvironment="var1=привет"
а на выходе крякозябры.
----------------------
вопрос снят, разобрался.
нужно написать cmd файл в utf-8, затем сменить кодировку на ansi и сохранить.
т.е. что бы получить...
test.exe -SetEnvironment="var1=привет"
нужно запустить...
test.exe -SetEnvironment="var1=привет"
проще способа не существует, я правильно понимаю? :lamer:
как передать кириллицу через командную строку? »
1 В какой кодировке написана Ваша ком. строка?
2 Приведите файл конфигурации, дабы понять, где используется переменная var1. В текстах модуля или сторонним ПО, например, cmd и почему у Вас на выходе крякозябры »
firsthar
05-05-2012, 20:43
gora,
для вывода текста через BeginPrompt.
т.е. в зависимости от того какой батник запустишь, выводится разный текст.
текст задаётся по типу -SetEnvironment="var1=привет" при запуске.
-------------
ещё есть мысль запускать с -SetEnvironment="var1=%p1%"
а в самом коде...
SetEnvironment="p1=привет"
SetEnvironment="p2=пока"
SetEnvironment="var1=%p2%"
BeginPrompt="%var1%"
но батник не пропускает значёк "%".
думаю дальше.
для вывода текста через BeginPrompt.
т.е. в зависимости от того какой батник запустишь, выводится разный текст.
текст задаётся по типу -SetEnvironment="var1=привет" при запуске. »
Напишите строку test.exe -SetEnvironment="var1=привет" в батнике в кодировке DOS (866) и текст будет нормально отображаться в диалогах модуля.
но батник не пропускает значёк "%". »
Батник нормально передает знак процента, для этого его нужно удвоить:test.exe -SetEnvironment="var1=%%p1%%"
firsthar
05-05-2012, 23:58
практически закончил свой первый мини проект. ничего если я сюда кину вам листинг на проверку\оптимизцию?
МИШАНЧИК
06-05-2012, 03:03
gora, подскажите пожалуйста, почему когда у меня файл конфигурации больше 9Кб-то архив создать невозможно(я в справке читал что должен быть меньше 9Кб), но в тоже время есть архивы(не мои) в которых файл конфигурации значительно больше 9Кб(много значений автоинстала+ярлыки). Как это достигается?
bugmenotagain
06-05-2012, 08:34
Нет, такое невозможно. Можно использовать прием с временной папкой и последующим копированием нужного, описанный выше. »
С примером все понятно, но проблема такая, что "распаковываемый набор един для обеих разрядностей", НО в 1 случае нужно распаковать, например, 50% набора, а во втором 100%. Вариант с каждый набор поместить в соответствующую разрядности папку » не подходит т.к дублирование 50% содержимого SFX архива увеличит его на 50% или даже больше, что не совсем логично и оптимально. Возможна ли комбинация из 2х предложенных случаев?
спасибо
gora, и еще вопросец, в конфиге убрал InstallPath и добавил это
SetEnvironment="PFx86=%ProgramFiles%\\prog"
SetEnvironment="PFx64=%ProgramW6432%\\prog"
RunProgram="x64:hidcon:xCopy * \"%PFx64%\\\" /s /e /i /y"
RunProgram="x86:hidcon:xCopy * \"%PFx86%\\\" /s /e /i /y"
на 32 системе в папку "prog" распаковалась половина содержимого, в чем может быть дело?
и как вообще можно для 32 и 64 систем предлагать по умолчанию такие пути распаковки?
%ProgramFiles%\\Программа=c:\Program Files\\Программа
%ProgramFiles%\\Программа= c:\Program Files (x86)\\Программа
Очень многго непоняток по этому вопросу, а в http://7zsfx.info/ru/ нет достаточной инфы :(
почему когда у меня файл конфигурации больше 9Кб-то архив создать невозможно(я в справке читал что должен быть меньше 9Кб), »
Ограничений на размер файла конфигурации нет, Вы что-то путаете. В старых версиях Кнопки был настраиваемый параметр максимального размера конфига и он по-умолчанию действительно стоял 9КБ, но он мог быть изменен пользователем, да и было это уже давно. В новых версиях кнопки этого параметра вообще нет.дублирование 50% содержимого SFX архива увеличит его на 50% или даже больше, что не совсем логично и оптимально. »Начнем с того, что это заблуждение и дублирующие файлы в архиве практически не увеличивают его размер, можете проверить это самостоятельно.проблема такая, что "распаковываемый набор един для обеих разрядностей", НО в 1 случае нужно распаковать, например, 50% набора, а во втором 100% »Сделайте две папки. В папку 1 положите все файлы, которые используются и на х86, и на х64 системах, а в папку 2 положите только те файлы, которые будут использоваться исключительно на х64 системе. Дубликатов не будет, а далее так:SetEnvironment="PFx86=%ProgramFiles%\\prog"
SetEnvironment="PFx64=%ProgramW6432%\\prog"
RunProgram="x64:hidcon:xCopy 1\\* \"%PFx64%\\\" /s /e /i /y"
RunProgram="x64:hidcon:xCopy 2\\* \"%PFx64%\\\" /s /e /i /y"
RunProgram="x86:hidcon:xCopy 1\\* \"%PFx86%\\\" /s /e /i /y" на 32 системе в папку "prog" распаковалась половина содержимого, в чем может быть дело? »
Вариантов много, гадать не умею.как вообще можно для 32 и 64 систем предлагать по умолчанию такие пути распаковки?
%ProgramFiles%\\Программа=c:\Program Files\\Программа
%ProgramFiles%\\Программа= c:\Program Files (x86)\\Программа »
Вопрос не понятен, попробуйте сформулировать его еще раз более подробно.
bugmenotagain
10-05-2012, 11:23
Сделайте две папки. В папку 1 положите все файлы, которые используются и на х86, и на х64 системах, а в папку 2 положите только те файлы, которые будут использоваться исключительно на х64 системе. Дубликатов не будет, а далее так: »
сделал, в результате появились вопросы:
InstallPath закомментировать? если да то путь не будет указан по умолчанию, хотя в случае нажатия на ОК распаковка будет произведена в папку по умолчанию, но откуда пользователь узнает место распаковки?
И еще вопросик. В этой строке
RunProgram="x86:hidcon:xCopy 1\\* \"%PFx86%\\\" /s /e /i /y"
заместо x86 можно вставить префикс? если да то как через батник запускать ехе с префиксом?
start prog.exe "RunProgram1" или как? я вот тут http://7zsfx.info/ru/ читал не понятно
Команда для исполнения (множественная). Параметр оригинального SFX модуля архиватора 7-Zip.
Содержит имя исполняемого файла. Дополнительно может содержать: путь к исполняемому файлу (допустимы переменные, обрабатываемые модулем, а также относительные пути), префиксы и ключи для исполняемого файла.
Например:
RunProgram="notepad.exe"
RunProgram="C:\\Windows\\system32\\notepad.exe"
RunProgram="fm0:nowait:7z_RU.chm"
RunProgram="\"%%T\\Reader7Rus.msi\" /qn"
RunProgram="hidcon:fm0:\"%%S\\install.cmd\" /Q"
В двух последних случаях, при наличии ключей для исполняемого файла, путь и имя исполняемой программы заключаются в дополнительные кавычки. Префиксы и ключи для исполняемого файла при этом в дополнительные кавычки не включаются.
мне допустим нужны 2 варианта распаковки, вот и как через префикс их задать? тут написано про "путь и имя исполняемой программы заключаются в дополнительные кавычки" и что за программа "Q"? не могу понять. хоть бы пример давали там, всетаки для простых людей писали, а те кто шарят они и без этих инструкция разберутся.
bugmenotagain
10-05-2012, 14:43
gora, написал такую строку
AutoInstall2="hidcon:xCopy 2\\* \"%PFx86%\\\" /s /e /i /y"
теперь при запуске ехе с ключом -ai2 выполняется данное действие, но кроме этого так же выполняется распаковка всего архива. как не выполнять последнее при запуске с ключом -ai2 не могу додуматься :(
Подскажите, где ошибка в текстовом файле 7z sfx?:
RunProgram="hidcon:reg add \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /f /v \"Смена Обоев\" /t REG_SZ /d \"\\\"%ProgramFiles%\\MagicLogon\\hidcon.exe\\\" \\\"%ProgramFiles%\\MagicLogon\\ml.cmd\\\" delay\""
RunProgram="hidcon:Reg Add \"HKLM\\SOFTWARE\\Classes\\CLSID\\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\shell\\MagicLogon\" /ve /t REG_SZ /d "Поменять обои" /f \
RunProgram="hidcon:Reg Add \"HKLM\\SOFTWARE\\Classes\\CLSID\\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\shell\\MagicLogon\\command\" /ve /t REG_SZ /d \"\\\"%ProgramFiles%\\MagicLogon\\hidcon.exe\\\" \\\"%ProgramFiles%\\MagicLogon\ML.cmd\\\"" /f \
как перевести bat в текстовый файл 7z sfx?
Reg Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MagicLogon" /v "comments" /t REG_SZ /d "Смена фонов рабочего стола" /f
Reg Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MagicLogon" /v "DisplayName" /t REG_SZ /d "MagicLogon" /f
Reg Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MagicLogon" /v "DisplayVersion" /t REG_SZ /d "v1.0" /f
Reg Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MagicLogon" /v "Uninstallstring" /t REG_SZ /d "c:\Program Files\MagicLogon\Uninstall.cmd" /f
где ошибка »
C точки зрения синтаксиса конфига строки:
... REG_SZ /d "Поменять обои" /f \
... REG_SZ /d \"\\\"%ProgramFiles%\\MagicLogon\\hidcon.exe\\\" \\\"%ProgramFiles%\\MagicLogon\ML.cmd\\\"" /f \
должны кончаться так:... REG_SZ /d \"Поменять обои\" /f"
... REG_SZ /d \"\\\"%ProgramFiles%\\MagicLogon\\hidcon.exe\\\" \\\"%ProgramFiles%\\MagicLogon\\ML.cmd\\\"\" /f"
Про правильность конвертирования самих ключей ни чего не скажу, т.к., нужно видеть исходный reg файл
как перевести bat в текстовый файл 7z sfx? »
Нужно конвертировать исходный reg файл, а не батник. Это можно сделать, например, SetTools (http://forum.oszone.net/thread-172130.html)
bugmenotagain
17-05-2012, 16:22
gora, а по моему случаю можете что-либо сказать?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC