Показать полную графическую версию : Модифицированный SFX модуль 7-Zip'а для установок
Habetdin
27-06-2009, 15:19
pahan22, Индексы иконок в файлах с 0, а последний параметр можно не указывать, если нужна первая иконка (нулевая) »
Попробуйте
;с индексом иконки=0
Shortcut="P,{\"%%T\\_ResPatch.cmd\"},{Pat},{ResPatch},{},{Пропатчить},{\"%%T\"},{\"%%T\\ResPatch.ico\"},{0}"
;или без параметра "индекс иконки"
Shortcut="P,{\"%%T\\_ResPatch.cmd\"},{Pat},{ResPatch},{},{Пропатчить},{\"%%T\"},{\"%%T\\ResPatch.ico\"}"
pahan22, прав Habetdin на счет нумерации. Небольшое уточнение. Иконки в файлах .exe, .dll, и т.п., нумеруются с 0, а в файле .ico у Вас только одна иконка и она тоже имеет номер 0. Для иконки с номером 0 номер в параметре ярлыка можно не указывать, например так:Shortcut="P,{%%T\\Selector.exe},{},{Утилиты},{Изменение оформления Windows},{ResPatch 4 в 1},{%WINDIR%\\ResPatch},{%%T\\Selector.exe}"
gora, Habetdin, спасибо!
Единственное уточнение! Посмотрев код в последнем сообщении gora и сравнив его со своим сделал по аналогии!
То есть убрал кавычки! Было так:
Shortcut="P,{\"%%T\\_ResPatch.cmd\"},{Res},{ResPatch},{},{Восстановить},{\"[/B]%%T\"},{\"%%T\\ResPatch.ico\"},{1}"
Стало так:
Shortcut="P,{%%T\\_ResPatch.cmd},{Res},{ResPatch},{},{Восстановить},{[/B]%%T},{%%T\\ResPatch.ico}"
Получается в строках параметра 'Shortcut' не обязательно указывать пути в кавычках!
Просто когда писал конфиг действовал по аналогии с путями для 'RunProgram' и всех вариантов 'AutoInstall'-ов!
Получается в строках параметра 'Shortcut' не обязательно указывать пути в кавычках! »
Не всегда, в моем конкретном случае путь без пробеловInstallPath="%WINDIR%\\ResPatch" вот я и не поставил кавычек.
gora, хочу создать SFX который бы разом создавал на рабочем столе ярлыки на нужные мне проги. Файл конфигурации такой:
;!@Install@!UTF-8!
Shortcut="D,{ACDSeeSR.exe},{},{},{Смотрелка фото},{ACDSeeSR},{c:\\Program Files\\ACD Systems\\ACDSee\\11.0\\},{c:\\Program Files\\ACD Systems\\ACDSee\\11.0\\ACDSeeSR.exe},{0}"
;!@InstallEnd@!
но ничего не получается. В 7zip архив запаковываю мелкий файл. Делаю кнопкой sfx архив. Запускаю его и выскакивает сообщение что setup.exe не найден. Что я не так делаю?
Shortcut="D,{Укажи полный путь к исполнимому файлв ACDSeeSR.exe}, ... »Например:
Shortcut="D,{%ProgramFiles%\\ACDSeeSR\\ACDSeeSR.exe}
Drongo, gora, разобрался. Без строки в файле конфигурации RunProgram="hidcon:run.cmd и выскакивала ошибка. С ней работает. Пришлочь запокавать пустой run.cmd. Но это не принципиально.
Иконки создаются, что хорошо. Но они создаются даже если по указанному пути нет установленной программы. Можно ли сделать так, чтобы производилась проверка наличия программы по указанному пути, и если она есть то только тогда создавался ярлык?
Запускаю его и выскакивает сообщение что setup.exe не найден. Что я не так делаю »
Добавьте какую нибудь холостую команду запуска, например:
RunProgram="hidcon:cmd /c Echo" и сообщения не будет.
Dmitry_K
28-06-2009, 21:07
Можно ли сделать так, чтобы производилась проверка наличия программы по указанному пути, и если она есть то только тогда создавался ярлык? »
средствами самого модуля нельзя, но можно воспользоваться одной из программ на этой страничке (http://www.oszone.net/6161) и прикрутить ее к модулю: RunProgram="hidcon:cmd /c if exist путь_к_программе команда_на_создание_ярлыка"
Можно ли сделать так, чтобы производилась проверка наличия программы по указанному пути, и если она есть то только тогда создавался ярлык? »
Сам модуль не поддерживает условных операторов, но можно использовать .bat файл и рекурсивный запуск 7z SFX архива. Пример:
Файл конфигурации:;!@Install@!UTF-8!
SetEnvironment="SFX=%TMP%\\%%M"
RunProgram="hidcon:cmd /c copy \"%%S\\%%M\" \"%TMP%\\\""
RunProgram="hidcon:check.bat"
AutoInstall1="hidcon:cmd /c Echo"
Shortcut1="D,{\"%ProgramFiles%\\ACD Systems\\ACDSee\\11.0\\ACDSeeSR.exe\"},{},{},{Смотрелка фото},{ACDSeeSR},{\"%ProgramFiles%\\ACD Systems\\ACDSee\\11.0\\\"},{\"%ProgramFiles%\\ACD Systems\\ACDSee\\11.0\\ACDSeeSR.exe\"}"
;!@InstallEnd@! Файл check.bat:If Exist "%ProgramFiles%\ACD Systems\ACDSee\11.0\ACDSeeSR.exe" "%SFX%" -ai1 -sd1
exit
PS Хотя можно и без .bat файла :), попробуйте;!@Install@!UTF-8!
RunProgram="hidcon:cmd /c copy \"%%S\\%%M\" \"%TMP%\\\""
RunProgram="hidcon:cmd /c If Exist \"%ProgramFiles%\\ACD Systems\\ACDSee\\11.0\\ACDSeeSR.exe\" \"%TMP%\\%%M\" -ai1 -sd1"
AutoInstall1="hidcon:cmd /c Echo"
Shortcut1="D,{\"%ProgramFiles%\\ACD Systems\\ACDSee\\11.0\\ACDSeeSR.exe\"},{},{},{Смотрелка фото},{ACDSeeSR},{\"%ProgramFiles%\\ACD Systems\\ACDSee\\11.0\\\"},{\"%ProgramFiles%\\ACD Systems\\ACDSee\\11.0\\ACDSeeSR.exe\"}"
;!@InstallEnd@!
gora, не совсем получается. Во первых иконка не появляется на ярлык по вашему файлу кофигурации. Подправил чуть и все равно нет. Вот что получил:
;!@Install@!UTF-8!
GUIMode="2"
OverwriteMode="0"
RunProgram="hidcon:cmd /c copy \"%%S\\%%M\" \"%TMP%\\\""
RunProgram="hidcon:cmd /c If Exist \"%ProgramFiles%\\ACD Systems\\ACDSee\\11.0\\ACDSeeSR.exe\" \"%TMP%\\%%M\" -ai1 -sd1"
AutoInstall1="hidcon:cmd /c Echo"
Shortcut1="D,{\"%ProgramFiles%\\ACD Systems\\ACDSee\\11.0\\ACDSeeSR.exe\"},{},{},{Смотрелка фото},{ACDSeeSR},{\"%ProgramFiles%\\ACD Systems\\ACDSee\\11.0\\\"},{\"%ProgramFiles%\\ACD Systems\\ACDSee\\11.0\\ACDSeeSR.exe\"},{0}"
RunProgram="hidcon:cmd /c copy \"%%S\\%%M\" \"%TMP%\\\""
RunProgram="hidcon:cmd /c If Exist \"%ProgramFiles%\\Acronis\\TrueImageHome\\TrueImage.exe\" \"%TMP%\\%%M\" -ai2 -sd2"
AutoInstall2="hidcon:cmd /c Echo"
Shortcut2="D,{\"%ProgramFiles%\\Acronis\\TrueImageHome\\TrueImage.exe\"},{},{},{Архив системы},{TrueImage},{\"%ProgramFiles%\\Acronis\\TrueImageHome\\\"},{\"%ProgramFiles%\\Acronis\\TrueImageHome\\TrueImage.exe\"},{0}"
;!@InstallEnd@!
Правильно ли я сделал для двух программ по аналогии? Еще заметил что в свойствах ярлыка в поле Объект и Рабочая папка адрес заключен в двойные кавычки "". Почему?
Pozia, с ярлыками я недоглядел. Немного упростил и сделал на три ярлыка, дальше по аналогии.;!@Install@!UTF-8!
SetEnvironment="PathInst1=%ProgramFiles%\\ACD Systems\\ACDSee\\11.0"
SetEnvironment="PathInst2=%ProgramFiles%\\Acronis\\TrueImageHome"
SetEnvironment="PathInst3=%ProgramFiles%\\7-Zip"
RunProgram="hidcon:cmd /c If Exist \"%PathInst1%\\ACDSeeSR.exe\" \"%%S\\%%M\" -ai1"
RunProgram="hidcon:cmd /c If Exist \"%PathInst2%\\TrueImage.exe\" \"%%S\\%%M\" -ai2"
RunProgram="hidcon:cmd /c If Exist \"%PathInst3%\\7zFM.exe\" \"%%S\\%%M\" -ai3"
AutoInstall1="hidcon:cmd /c Echo"
AutoInstall2="hidcon:cmd /c Echo"
AutoInstall3="hidcon:cmd /c Echo"
Shortcut1="D,{%PathInst1%\\ACDSeeSR.exe},{},{},{Смотрелка фото},{ACDSeeSR},{%PathInst1%}"
Shortcut2="D,{%PathInst2%\\TrueImage.exe},{},{},{Архив системы},{TrueImage},{%PathInst2%}"
Shortcut3="D,{%PathInst3%\\7zFM.exe},{},{},{Архиватор},{7-Zip},{%PathInst3%}"
GUIMode="2"
;!@InstallEnd@! Параметры {icon_file},{icon_index} указывать необязательно, если иконка должна быть от файла из параметра {src_file_path}. Вот если иконка должна быть от другого файла, то параметры {icon_file},{icon_index} нужно указывать.
gora, огромное спасибо. Очень все элегантно и красиво упрастили. Легко и наглядно дальше редактировать.
Параметры {icon_file},{icon_index} указывать необязательно, если иконка должна быть от файла из параметра {src_file_path}. Вот если иконка должна быть от другого файла, то параметры {icon_file},{icon_index} нужно указывать. »
а вот это не могу понять как правильно записать. Можно еще примерчик?
Можно еще примерчик? »Добавьте в тот же файл
...
SetEnvironment="PathInst4=%ProgramFiles%\\Total Commander"
...
RunProgram="hidcon:cmd /c If Exist \"%PathInst4%\\Totalcmd.exe\" \"%%S\\%%M\" -ai4"
...
AutoInstall4="hidcon:cmd /c Echo"
...
Shortcut4="D,{%PathInst4%\\Totalcmd.exe},{},{},{Менеджер файлов},{Total Commander},{%PathInst4%},{%PathInst4%\\WCMICONS.DLL},{47}"
Создастся ярлык на столе для ТС, но иконка будет взята из файла WCMICONS.DLL под номером 47 (бинокль)
gora, теперь все хорошо, разобрался. Только маленькое замечание кто будет делать ярлыки таким образом. Нумеровать нужно с нуля, а то ошибка выскакивает.
gora, вот сделал такой конфиг:
;!@Install@!UTF-8!
RunProgram="hidcon:run.cmd"
SetEnvironment="PathInst0=%programfiles%\\ACD Systems\\ACDSee\\11.0\\"
SetEnvironment="PathInst1=%programfiles%\\FSViewer\\"
SetEnvironment="PathInst2=%programfiles%\\Light Alloy\\"
SetEnvironment="PathInst3=%programfiles%\\CyberLink\\PowerDVD8\\"
SetEnvironment="PathInst4=%programfiles%\\TagRename\\"
SetEnvironment="PathInst5=%programfiles%\\VLC\\"
SetEnvironment="PathInst6=%programfiles%\\Wavosaur\\"
SetEnvironment="PathInst7=%programfiles%\\Winamp\\"
SetEnvironment="PathInst8=%programfiles%\\ABBYY FineReader 9.0\\"
SetEnvironment="PathInst9=%programfiles%\\Advanced Grapher\\"
SetEnvironment="PathInst10=%programfiles%\\AutoCAD 2007\\"
SetEnvironment="PathInst11=%programfiles%\\Mathcad 14\\"
SetEnvironment="PathInst12=%programfiles%\\NumLock Calculator\\"
RunProgram="hidcon:cmd /c If Exist \"%PathInst0%\\ACDSee11.exe\" \"%%S\\%%M\" -ai0"
RunProgram="hidcon:cmd /c If Exist \"%PathInst1%\\FSViewer.exe\" \"%%S\\%%M\" -ai1"
RunProgram="hidcon:cmd /c If Exist \"%PathInst2%\\LA.exe\" \"%%S\\%%M\" -ai2"
RunProgram="hidcon:cmd /c If Exist \"%PathInst3%\\PowerDVD8.exe\" \"%%S\\%%M\" -ai3"
RunProgram="hidcon:cmd /c If Exist \"%PathInst4%\\TagRename.exe\" \"%%S\\%%M\" -ai4"
RunProgram="hidcon:cmd /c If Exist \"%PathInst5%\\vlc.exe\" \"%%S\\%%M\" -ai5"
RunProgram="hidcon:cmd /c If Exist \"%PathInst6%\\Wavosaur.exe\" \"%%S\\%%M\" -ai6"
RunProgram="hidcon:cmd /c If Exist \"%PathInst7%\\Winamp.exe\" \"%%S\\%%M\" -ai7"
RunProgram="hidcon:cmd /c If Exist \"%PathInst8%\\FineReader.exe\" \"%%S\\%%M\" -ai8"
RunProgram="hidcon:cmd /c If Exist \"%PathInst9%\\AGrapher.exe\" \"%%S\\%%M\" -ai9"
RunProgram="hidcon:cmd /c If Exist \"%PathInst10%\\acad.exe\" \"%%S\\%%M\" -ai10"
RunProgram="hidcon:cmd /c If Exist \"%PathInst11%\\mathcad.exe\" \"%%S\\%%M\" -ai11"
RunProgram="hidcon:cmd /c If Exist \"%PathInst12%\\NLCalc.exe\" \"%%S\\%%M\" -ai12"
AutoInstall0="hidcon:cmd /c Echo"
AutoInstall1="hidcon:cmd /c Echo"
AutoInstall2="hidcon:cmd /c Echo"
AutoInstall3="hidcon:cmd /c Echo"
AutoInstall4="hidcon:cmd /c Echo"
AutoInstall5="hidcon:cmd /c Echo"
AutoInstall6="hidcon:cmd /c Echo"
AutoInstall7="hidcon:cmd /c Echo"
AutoInstall8="hidcon:cmd /c Echo"
AutoInstall9="hidcon:cmd /c Echo"
AutoInstall10="hidcon:cmd /c Echo"
AutoInstall11="hidcon:cmd /c Echo"
AutoInstall12="hidcon:cmd /c Echo"
Shortcut0="D,{%PathInst0%\\ACDSee11.exe},{},{},{Просмотр, конвертация и редактирование фото},{ACDSee 11},{%PathInst0%},{%PathInst0%\\ACDSee11.exe},{0}"
Shortcut1="D,{%PathInst1%\\FSViewer.exe},{},{},{Просмотр, конвертация и редактирование фото},{FastStone Image Viewer 3.2},{%PathInst1%},{%PathInst1%\\FSViewer.exe},{0}"
Shortcut2="D,{%PathInst2%\\LA.exe},{},{},{Воспроизведение видео файлов AVI},{Light Alloy 4.4},{%PathInst2%},{%PathInst2%\\LA.exe},{0}"
Shortcut3="D,{%PathInst3%\\PowerDVD8.exe},{},{},{Воспроизведение видео файлов DVD},{PowerDVD 8},{%PathInst3%},{%PathInst3%\\PowerDVD8.exe},{0}"
Shortcut4="D,{%PathInst4%\\TagRename.exe},{},{},{Создание и сортировка больших массивов музыкальных медиафайлов},{TagRename 3.4.5},{%PathInst4%},{%PathInst4%\\TagRename.exe},{0}"
Shortcut5="D,{%PathInst5%\\vlc.exe},{},{},{Воспроизведение любых видео файлов без кодеков},{VLC media player 0.9.4},{%PathInst5%},{%PathInst5%\\vlc.exe},{0}"
Shortcut6="D,{%PathInst6%\\Wavosaur.exe},{},{},{Редактирование, обрезка аудио файлов},{Wavosaur 1.0.3.0},{%PathInst6%},{%PathInst6%\\Wavosaur.exe},{0}"
Shortcut7="D,{%PathInst7%\\Winamp.exe},{},{},{Воспроизведение аудио файлов},{Winamp 5.541},{%PathInst7%},{%PathInst7%\\Winamp.exe},{0}"
Shortcut8="D,{%PathInst8%\\FineReader.exe},{},{},{Перевод бумажных документов, PDF-файлов и цифровых фотографий в редактируемый электронный формат с полным сохранением внешнего вида},{ABBYY FineReader PE 9},{%PathInst8%},{%PathInst8%\\FineReader.exe},{0}"
Shortcut9="D,{%PathInst9%\\AGrapher.exe},{},{},{Построение графиков (Y(x), X(y), полярные координаты, параметрические уравнения, графики таблиц, неявные функции (уравнения) и неравенства) и их анализ},{Advanced Grapher 2.11},{%PathInst9%},{%PathInst9%\\AGrapher.exe},{0}"
Shortcut10="D,{%PathInst10%\\acad.exe},{},{},{Система автоматизированного проектирования и выпуска рабочей конструкторской и проектной документации},{AutoCAD 2007},{%PathInst10%},{%PathInst10%\\acad.exe},{0}"
Shortcut11="D,{%PathInst11%\\mathcad.exe},{},{},{Многофункциональная интерактивная вычислительная система, позволяющая решать аналитически и численно большое количество математических задач не прибегая к программированию},{Mathcad 14},{%PathInst11%},{%PathInst11%\\mathcad.exe},{0}"
Shortcut12="D,{%PathInst12%\\NLCalc.exe},{},{},{Мощный калькулятор. Вызывается при нажатии кнопки ScrollLock},{NumLock Calculator 3.3},{%PathInst12%},{%PathInst12%\\NLCalc.exe},{0}"
GUIMode="2"
;!@InstallEnd@!
почему то создает только первые 10 ярлыков. Я неправильно записал или это ограничения конфига?
почему то создает только первые 10 ярлыков. Я неправильно записал или это ограничения конфига? »
AutoInstallX="command_auto_install"
Где X - литера варианта. В качестве литеры X допустимы [0...9], [A...Z], [a...z]. Команда для исполнения (множественная).
Вы можете указать в файле конфигурации до 62 вариантов автоматических установок....
Цифры кончились, используйте буквы.
gora,
Нет ли каких замечаний и нюансов по работе SFX модуля в Windows 7 ? И будет ли как то решаться проблема с запуском из модуля программ, образующих несколько дочерних процессов, "сбивающих" работу модуля ?
Habetdin
04-07-2009, 20:40
MKN, вопрос не к gora, а к Oleg_Sch ;)
Oleg_Sch
05-07-2009, 05:10
MKN, вопрос не к gora, а к Oleg_Sch »
Верно. Вопрос ко мне, а поздравления с днем рождения - к нему ;)
Нет ли каких замечаний и нюансов по работе SFX модуля в Windows 7 »
Сам пока не тестировал, но некоторые товарищи уже опробовали. Поверхностное тестирование пока никаких нюансов не выявило.И будет ли как то решаться проблема с запуском из модуля программ, образующих несколько дочерних процессов, "сбивающих" работу модуля ? »
Будет. Вопрос "когда" :(
Пока не хочу ничего обещать.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.