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
02-05-2012, 11:56
зачем нужна эта тема при наличии »
Я постарался это объяснить в шапке.
1 Сейчас вопросы по файлам конфигурации задаются в разных ветках форума и не только в ветке модуля. Уже бывает и не вспомнить в какой из веток отвечал на повторяющийся многократно вопрос. Искать эти ответы по всем веткам затруднительно, а так все будет сосредоточенно в одной ветке.
2 В ветке модуля лучше обсуждать фунционал модулей, баги модулей, запрашивать новые возможности, а обсуждение конкретных файлов конфигурации, иногда очень простых и описанных в справке, там не не устраивать.
3 Править шапку и добавлять в нее FAQ мне здесь можно самому не обращаясь к автору модулей или модераторам. (зачем дергать занятых людей по пустякам).

Если Вы считаете, что она не нужна, то ее всегда можно закрыть (мне меньше забот).

Vadikan
02-05-2012, 12:44
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\""

alert30
05-05-2012, 17:40
bugmenotagain, параметры похожи на Inno Setup.

gora
05-05-2012, 17:54
а что значат в этой строке

эти параметры? »
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:

gora
05-05-2012, 19:47
как передать кириллицу через командную строку? »
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%"
но батник не пропускает значёк "%".
думаю дальше.

gora
05-05-2012, 21:23
для вывода текста через 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/ нет достаточной инфы :(

gora
10-05-2012, 08:42
почему когда у меня файл конфигурации больше 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 не могу додуматься :(

sov44
16-05-2012, 15:11
Подскажите, где ошибка в текстовом файле 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

gora
16-05-2012, 15:40
где ошибка »
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