Показать полную графическую версию : Руководство по созданию аддонов (текущая версия)
Страниц :
1
2
3
4
5
6
7
8
9
10
11
12
[
13]
14
15
16
17
18
19
20
21
jameszero
08-08-2008, 10:42
DJ Electronic
Если секция установки/деинсталляции вызывается через setupapi, то запуск файлов отрабатывает только через директиву Run.
Если секция установки/деинсталляции вызывается через advpack, то запуск файлов отрабатывает только через директивы RunPreSetupCommands и RunPostSetupCommands.
А так же, через advpack не отрабатывают команды RegisterDlls и UnRegisterDlls
Обычный запуск установки (по правой кнопке на inf-файле - "Установить") вызывает, как раз интерпретатор setupapi (со всеми вытекающими).
Я для тестирования inf-файлов применяю следующий твик:
[Version]
Signature=$Windows NT$
[DefaultInstall]
AddReg = TWEAKS.AddReg
DelReg = TWEAKS.DelReg
[TWEAKS.AddReg]
HKCR,"inffile\shell\Install1",,0x0,"Install"
HKCR,"inffile\shell\Install1\command",,0x20000,"%%SystemRoot%%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %%1"
HKCR,"inffile\shell\Install2",,0x0,"UnInstall"
HKCR,"inffile\shell\Install2\command",,0x20000,"%%SystemRoot%%\System32\rundll32.exe setupapi,InstallHinfSection UnInstall 132 %%1"
HKCR,"inffile\shell\Install3",,0x0,"AdvInstall"
HKCR,"inffile\shell\Install3\command",,0x20000,"%%SystemRoot%%\System32\rundll32.exe advpack.dll,LaunchINFSection %%1, DefaultInstall,0"""
HKCR,"inffile\shell\Install4",,0x0,"AdvUnInstall"
HKCR,"inffile\shell\Install4\command",,0x20000,"%%SystemRoot%%\System32\rundll32.exe advpack.dll,LaunchINFSection %%1, UnInstall,0"""
[TWEAKS.DelReg]
HKCR,"inffile\shell\Install"
т.е. стандартная команда "Установить" из контекстного меню inf-файлов удаляется, но добавляются четыре новых пункта.
Install
UnInstall
AdvInstall
AdvUnInstall
Первый и второй пункты (значения, надеюсь понятны) отрабатывают через setupapi, третий и четвёртый делают тоже самое через advpack.
Примечание: для деинсталляции из контекстного меню inf-файла, соответствующая секция должна называться [Uninstall] и никак иначе (регистр букв не важен).
В "Руководстве по созданию аддонов" есть такой текст:
Важное замечание по синтаксису INF- скрипта. При вызове интерпретатора из INF-файла имеются различия вызова через setupapi.dll и advpack.dll. Вызов setupapi.dll должен осуществляться через инструкцию Run= , а вызов advpack.dll - только через RunPostSetupCommands=
но он не совсем точен (или я его не так понял). Различия между setupapi.dll и advpack.dll имеются, и о них я написал в начале поста, но ничего не мешает использовать setupapi для вызова секции, отрабатывающей через advpack.
Пример:
[Uninstall]
Run=opera.AdvInfCall
[opera.AdvInfCall]
Commandline="""%11%\rundll32.exe"" advpack,LaunchINFSection ""%17%\Opera.inf"",Opera.Uninstal.DelDirs,4"
TickCount=500
volk1234
19-08-2008, 22:30
Хм, заметил у себя ошибку-
в разделе 2
Файл Dosnet.inf используется только при установке Windows с жёсткого диска.
На самом деле, как указанно в приложении про этапы установки Windows XP любой вид установки, кроме установки с CD
установщик воспринимает как установку из сети, даже с жесткого диска. LOL
тот же в раздел 2 в главе про SYSOC выделить жирным в примере строку с Foxitr, и сделать пример более понятным.
в конце статьи про SYSOC сделать ссылку на Приложения 3,4 вместо их упоминания
еще
в разделе 2 про SVCPACK:
SVCPACK обрабатывается за 13 минут до окончания установки Windows (T13), так сказать на "высоком" уровне, что позволяет использовать оригинальный установщик программы.
добавить - и позволяет также использовать возможности реестра и других "высокоуровневых" средств (или как то так)
еще
Важно! В конфигурационном файле Run также возможно указывать ключи запускаемых приложений: setup.exe /s.
слово RUN выделить курсивом
и еще:
Комбинированные аддоны.
Из названия следует, что данный тип использует оба вышеописанных типа: SYSOC и SVCPACK.
Вобщем то , из названия ничего не следует :) переделать...
DyadyaGenya
23-08-2008, 20:04
volk1234, пока решаю проблемы с загузкой системы дома (уж очень хочется востановить ссылки) на работе в очередной раз прочитал руководство и появилась мысль, а не добавить ли в разделе деинсталяции замечание или дополнение, что с помощью
[Dir.Delete]
rundll32.exe advpack.dll,DelNodeRunDLL32
можно удалить одновременно несколько папок, допустим, чтоб не оставались следы программы в документ энд сетинг, которые особенно часто встречаются в апликейшин дата? конечно может гуру и используют этот метод, но я например не сразу решил что надо и эти папки подчищать и тем более как это сделать
для удобства пример:
[Dir.Delete]
rundll32.exe advpack.dll,DelNodeRunDLL32 %16422%\%PROG_DIR%
rundll32.exe advpack.dll,DelNodeRunDLL32 %16410%\Gretech
rundll32.exe advpack.dll,DelNodeRunDLL32 %16419%\Gretech
[Strings]
PROG_DIR ="Gretech"
Papercut
24-08-2008, 10:37
Помогите ламеру. Чем как можно изменить файлы в .cab и .exe? 7-Zip только добавляет файлы, а при удалении или замене сушествующих выдает ошибку "Не поддерживается".
Papercut,
Очень хорошая утилита CabTools (http://forum.oszone.net/showthread.php?t=93596&highlight=CabTools) для перепаковки .cab и почитайте на досуге Сжатые файлы и ModifyPE (http://oszone.net/2806), а .exe можно попробовать распаковать с помощью унпакера (например Universal Extractor (http://forum.oszone.net/thread-81059-7.html), но не факт, что он всё распакует, т.е. не все .exe может распаковать).
Papercut
24-08-2008, 11:30
Под .exe я имел в виду SFX-архивы.
Papercut,
Только полный ответ, возможно, убережет от повторных "занудных" вопросов ;) . »
На форуме в основном используют 7-Zip SFX архивы, которые можно запаковать и распаковать с помощью Кнопки для создания и работы с 7z SFX (http://forum.oszone.net/thread-83838.html) и почитайте Создание SFX архива (http://oszone.net/3171).
Black Babay
25-08-2008, 10:36
volk1234, извените, но опять вопрос, который поставил меня в тупик.
Как при помощи INF-файла, создать ярлык в Quick Launch для "Мой компьютер"?
volk1234
26-08-2008, 08:19
Papercut - вам может помочь Total Commander 7 версии и выше,
понимает множество архивов. Выделяете файл и Ctrl+PgDown - перед вами содержимое архива,
правда именно в каб по стандарту не получится добавить, используйте CabTool, а вот остальные - например Sfx rar -
прямо по команде F5 добавляется в архив.
Кстати делаю вам предупреждение за оффтопик, эта ветка про руководство, для решения проблем архиваторов вам не сюда.
DyadyaGenya
30-08-2008, 19:27
Stanner, попробовал удалить инф как ты и предлагаешь,
Я считаю, что после удаления программы ее inf-файл тоже не нужен и предлагаю сделать так: »
но после этого в пункт "Установка компонентов виндоус" не достучаться, пишет мол нет инф файла такой то программы и окошко тухнет. Может я не так делаю? или ты не пробовал после этого заходить в "Установка компонентов виндоус"
Black Babay
30-08-2008, 23:07
но после этого в пункт "Установка компонентов виндоус" не достучаться, пишет мол нет инф файла такой то программы и окошко тухнет. »
Точно, есть такое дело. Но вот когда это появилось, не знаю...
DyadyaGenya, Black Babay, я так предлагал только для SVCPACK-аддонов, которые не имеют отношения к компонентам Windows.
DyadyaGenya
03-09-2008, 18:29
volk1234, а можно для таких как я в разделе sosoc сделать уточнение в строке
Hide - скрыть компонент
дописать таким образом:
Hide - скрыть компонент; скрывает аддон в списке "Установка компонентов Windows"
Black Babay, попробуй посмотреть какие аддоны у тебя стоят и проверь наличие в папке виндоус/инф инфов этих файлов, вдруг там не все есть, тогда просто из аддона добавь должно помочь
volk1234, и ещё маленькое дополнение, если наличие инф файла в папке виндоус имеет такое значение то может стоит отобразить это в руководстве?
Dmitry_K
20-09-2008, 07:12
Black Babay, нет ничего проще, чем создать при помощи INF-файла ярлык в Quick Launch для "Мой компьютер"... конечно, шутка... но "батники" - великая весчь ;)
[version]
Signature="$CHICAGO$"
AdvancedINF=2.5
[DefaultInstall]
RunPreSetupCommands = MakeDesktopLink
[MakeDesktopLink]
"cmd /c MD ""%APPDATA%\Microsoft\Internet Explorer\Quick Launch\Мой компьютер.{20D04FE0-3AEA-1069-A2D8-08002B30309D}"""
Black Babay
20-09-2008, 20:48
Dmitry_K, Спасибо! Я уж думал так и не решу эту мелочь! :search:
Вот и я наконец то обратил свой взор на руководство по написанию аддонов. Начал читать и понял, что есть вопросы на которые не имею пока ответа:
- Что такое аддон
- В чем его преимущество и недостатки
- Какие типы их бывают
- Допускают ли динамическую установку ( то есть по выбору скажем на T40 или позже)
- Алгоритмы (Механизмы ) и средства интеграции или использования
- Локализация аддонов и возможности создания многоязычных
Вопросы, просты но ответы на них у меня чисто интуитивные и в их корректности я не уверен.
Может есть смысл осветить их во введении руководства? Так сказать для полноты документа!
То что написано по http://tools.oszone.net/jameszero/updatepack/index.htm#addons
выглядит очень скромно и не раскрывает вопроса.
- Что такое аддон
- В чем его преимущество и недостатки »
Да, пожалуй, с этого стоит начать руководство :)
Какие типы их бывают »
См. раздел II
- Допускают ли динамическую установку ( то есть по выбору скажем на T40 или позже) »
Я думаю, что этот вопрос можно осветить в "преимуществах и недостатках".
- Алгоритмы (Механизмы ) и средства интеграции или использования »
Не очень понятно, о чем речь... В общем, все руководство об этом и рассказывает :)
- Локализация аддонов и возможности создания многоязычных »
Если говорить о приложениях, то тут от начинки аддона зависит, а не от самого аддона. Приведите пример аддона, который должен быть многоязычным.
В общем, все руководство об этом и рассказывает »
Виноват не хватило терепения на внимательное прочтение даже оглавления.
Цитата NikLok:
- Алгоритмы (Механизмы ) и средства интеграции или использования »
Не очень понятно, о чем речь... В общем, все руководство об этом и рассказывает »
Ну к примеру популярнейший [addon] ResPatch Black-Dark Blue & Yellow или Новые ресурсы (битмэпы) для Windows XP
можно интегрировать вроде а можно просто поставить в уже установленной системе. И так вроде многие написаны.
Что это - смесь аддона со скриптом установки или уже новая сущность? (наверное все таки надо прочесть до конца сначала - но тогда многие вопросы исчезнут забившись информацией или прояснившись все таки :( )
Приведите пример аддона, который должен быть многоязычным. »
Ну я пока очень слабо в них ориентируюсь, но мне кажется многим захочется командную строку со списком команд. Очень полезная штучка для всяких начинающих и забывичвых, то есть заканчивающих! :)
volk1234
28-09-2008, 19:40
Привет. Слетела подписка на эту тему :(
Аддон (буквально Добавка) - программа модифицированная специальным образом для интеграции посредством Update Pack в дистрибутив Windows XP для последующей автоматической установки вместе с ней.
Для лучшего понимания приведу пример: Есть программа Total Commander которая является файловым менеджером, позволяет просмотривать папки и файлы, но не умеет просматривать картинки сразу в панели. А вам очень нужна такая функция. Вы скачиваете(или создаете) PLUG-IN для Total Commander который добавляет возможность просматривать картинки прямо в панели.
Тоже самое и в нашем случае. Update Pack служит для добавления в дистрибутив Windows обновлений и заплаток. Побочной функцией является возможность интегрировать программы в дистрибутив используя тот же механизм, что и обновления(SVCPACK, SYSOC). Только в нашем случае не plug in, а аддон.
Плюсы такого подхода к автоустановке очевидны: при установке вместе с Windows устанавливаются все необходимые вам программы, утилиты, драйвера. Это происходит без вашего участия. Нет необходимости во множестве перезагрузок. Аддоны легки в создании и не требуют больших знаний (по крайней мере типа SVCPACK).
Минусы не так очевидны, но тоже присутствуют. Самый главный состоит в том, что установщик Windows изначально не расчитан на установку стороннего програмного обеспечения, и здесь возможны различные конфликты и ошибки несовместимости.Справедливости ради стоит сказать, что происходит это очень редко. Второй минус в том, что аддоны не очень гибки и изменить, что либо после записи дистрибутива на диск невозможно. Существуют варианты аддонов которые позволяют делать какой-либо выбор на этапе установки (SIF), но делается это путем различных хитростей и подменой дистрибутивных файлов. Что тоже не очень хорошо. Лучше воспользоватся одной из программ Post installer [ссылка на сайт]
Еще один минус - разбухание дистрибутива. Кроме того если не следить за журналом ошибок, при использовании плохо отлаженных или конфликтующих аддонов возникают различные трудно отлавливаемые глюки и ошибки в работе Windows, которые не исчезают даже при удалении установленных приложений-аддонов.
///
что качается вопроса о применении аддона на рабочей системе, он выходит за рамки руководства. Это вопрос по inf-файлам и ключам инсталяторов. Руковдство по созданию аддонов предполагает некоторый начальный уровень читающего в области создания простейших скриптов. Сами подумайте если команда copy a.txt d:\folder работает в виндовс
будет ли она работать в DOS ?
Все зависит от автора аддона. Кто -то умышленно исключает возможность установки аддона на работающей системе, а кто-то наоборот включает такую возможность.
volk1234, Плюсы такого подхода к автоустановке очевидны: при установке вместе с Windows устанавливаются все необходимые вам программы, утилиты, драйвера. Это происходит без вашего участия. Нет необходимости перезагрузки. Аддоны легки в создании и не требуют больших знаний (по крайней мере типа SVCPACK). »
Я как то считал что они более полезны тем, что физически установки программ то как раз и не происходит, за счет чего достигается кономия времени при установке системы?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.