Показать полную графическую версию : Руководство по созданию аддонов (текущая версия)
Страниц :
1
2
3
4
5
6
7
8
9
[
10]
11
12
13
14
15
16
17
18
19
20
21
DyadyaGenya
24-05-2008, 14:24
volk1234, И не только в дистрибутив и не только через SYSOC. Вы ошибаетесь. Возможность добавить программу в остнастку Компоненты Windows еще не означает слияние с ОС. Грубо говоря вы можете выбрать где будет ярлычок для удаления программы в Установке\Удалении или в Компоненты Windows. Программа установленная через Sysoc, суть есть, отдельная программа! Это как считать вас военным, если вы подьехали на военной машине и отдолжили военную форму. »
значит я изначально был прав, все получается как я и говорил :)
так я здесь не увидел, как в прочем и в остальной части статьи, что это обязательно, просто как выбор куда будет интегрироваться и устанавливаться, тоесть вроде как наличие альтернативы например, чтоб не встраивать в менеджер "установка и удаление программ" »
думаю вам достаточно было сразу опровергнуть мое предыдущее предложение
1 - оказывается sysoc аддоны встраиваются в дистрибутив как компоненты винды, а не как стороние программы, и по идее должны оторбражаться в менеджер Установка и удаление компонентов Windows и соответственно устанавливаться и удаляться оттуда »
указав при этом что это только выбор места интеграции, и не приводить массу цитат из руководства. Хотя вы возможно хотели этими примерами показать, что я не прав в отношении моего предположения, что sysoc аддоны получаются как бы компонентами винды, в результате сделали массу лишних телодвижений, а я принял ваши доводы за попытку доказать что в статье уже отображено, что данные аддоны являются компонентами :)
теперь по поводу удаления из реестра. Вот все что я нашел перед этим в статье по инф:
"Удаление объектов реестра производится параметром DelReg в выполняемой секции и имеет идентичный синтаксис в дочерней секции, за исключением следующих деталей: не указывается значение и не указывается тип ключа. Если необходимо удалить только параметр ключа, нужно указать аббревиатуру_корня_реестра,"путь\к\ключу","имя_параметра", если весь ключ - аббревиатуру_корня_реестра,"путь\к\ключу". То есть формат записи строк в дочерней секции при удалении объектов в реестре таков HKXX,"PATH\REGKEY","parameter" ", ну а то что нашел в вашей статье я уже приводил, и нигде больше ни слова про обязательность удаления всех веток, хотя я уже и понимаю что нужно удалять все. Может стоило чуть больше внимания уделить в статье и этому вопросу, добавив несколько строк, а не ограничиваться только упоминанием про возможность удаления и специфики синтаксиса при этом, хотя синтаксис и другие замечания очень важны и я не представляю как можно было бы без него обойтись.
ну и по поводу того что я тороплюсь и перескакиваю с темы на тему. Вы конечно правы, но и немного обидно, когда вы говорите что я сразу перепрыгнули на rundll32.exe advpack,DelNodeRunDLL32 »
хотя сами принимали учасьте в обсуждении и помагали в решении вопросов по дэинсталяции, а я там разбирал волпрос и про использование родного анинстала и секции [DelDirs], кстати, у меня не получилось только в одном аддоне, пример которого я и приводил, а именно в winamp, кстати, тот вопрос так и остался открытым, а на rundll32.exe advpack,DelNodeRunDLL32 я перешел далеко не сразу, а только после экспериментов с секцией ДелДирз и родным анинсталом, мне казалось что это хорошо видно в моих постах другой ветки
volk1234
24-05-2008, 20:18
и нигде больше ни слова про обязательность удаления всех веток, хотя я уже и понимаю что нужно удалять все. »
Я даже не знаю как прокоментирова ваше высказвание... Конечно надо удалять все, что добавил, это вообще основы програмирования,
а INF - файлы и аддоны тут не причем. Если "намусорил" надо все убрать, или половину? Можно конечно оставить как есть, но другие люди не будут пользоватся такой программой.
А кучу цитат я привел для доказательства, что в руководстве есть все по аддонам. Но ничего другого там нет. Про деинсталяцию, домены, IIS, виды дистрибутивов Windows там не написано. Прочитайте этапы установки Windows безотносительно аддонов, вдумайтесь в каждый этап и значение файлов участвующем в этом этапе, нарисуйте их на бумажке, будет намного легче рабиратся в аддонах. И ковыряйте чужие аддоны, без плагиата свое не научитесь делать, ну или быстро не научитесь. Пишите в icq помогу чем смогу
Весь мануал прочитал, но так и не нашёл.Мне нужно заменить в NETRASA.IN_:HKR, , EnumExportPref, 0x00010001, 1
[Ndi-Reg-Mp-Pppoe]
HKR, Ndi, Service, 0, "RasPppoe"
HKR, Ndi\Interfaces, UpperRange, 0, "ndiswan"
HKR, Ndi\Interfaces, LowerRange, 0, "nolower"
HKR, , MinWanEndpoints, 0x00010001, 0
HKR, , MaxWanEndpoints, 0x00010001, 1000
HKR, , TapiLineName, 0, %Mp-Pppoe-LineName%
HKR, , WanEndpoints, 0x00010003, 1
;-------------------------------------------------------------------------
; [Services] sections.
; 1 = SPSVCINST_TAGTOFRONT
На:
HKR, , EnumExportPref, 0x00010001, 1
[Ndi-Reg-Mp-Pppoe]
HKR, Ndi, Service, 0, "RasPppoe"
HKR, Ndi\Interfaces, UpperRange, 0, "ndiswan"
HKR, Ndi\Interfaces, LowerRange, 0, "nolower"
HKR, , MinWanEndpoints, 0x00010001, 0
HKR, , MaxWanEndpoints, 0x00010001, 1000
HKR, , TapiLineName, 0, %Mp-Pppoe-LineName%
HKR, , WanEndpoints, 0x00010003, 10
;-------------------------------------------------------------------------
; [Services] sections.
; 1 = SPSVCINST_TAGTOFRONTЭто средствами UP можно реализовать?, если нет, то напишите пожалуста БАТничек (или другим способом) для реализации этого при помощи UP, а то задолбался вручную это делать… Очень прошу :(
Re:Flex,
сделай следующее.
Создай папку например Mycool в Updatepack\addons, в ней files\, в нее твой изменненый файл.
запусти __patch
Спасибо конечно, но про замену файлов я знал ( я же прочитал учебник :) )… Мне нужно заменять значения в этих упакованых файлах, желательно средствами UP. Хочу выложить аддон для маршрутизации нескольких интернет (PPPoE) соединений, а в винде стоит ограничитель на 1 одновременное соединение. Я долго искал, какже в "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0004\WanEndpoints" попадает значение (адрес к переменной динамический), выяснил что из файла "NETRASA.IN_", а .inf файлы заменять на свои в публичном аддоне считаю неприличным :(
И ещё не в тему, но всё же хорошо было бы если кто-нибудь подсказал, как реализовать создание сетевых подключений
Есть предложение еще одно предложение для авторов аддонов
http://forum.oszone.net/showthread.php?p=813268
volk1234
01-06-2008, 16:15
Re:Flex
А почему вас не устраивает вариант с заменой файла NETRASA.inf на переделаный вами? Один раз переделали, а потом, каждый раз при сборке дистрибутива переделаный файлик остается.
2 Vadikan
Прощу Вас убрать из Руководства следующую строку целиком, т.к. не приемлю к себе использованного в ней глагола.
Спасибо.gora за идеи перешедшие в Руководство (еслибы тогда не потявкались, у меня может и стимула не было бы писать)
gora, я исправил формулировку.
All
Я перенес ссылку на руководство из раздела Новичку в раздел Эксперту. Все-таки для новичков этот материал никак не подходит. В статье о наборах обновлений я дал ссылку на рук-во.
Я переношу текущую версию рук-ва в оффлайн версию. Все дальнейшие правки, даже мелкие, нужно будет помечать в логе.
volk1234
03-06-2008, 03:04
2 gora
глагол возможно некоректный был,
предлогаю вам замазать его и в вашем сообщении, а то обратный эффект получится,
в благодарностях его никто и не читал, а здесь все начнут.
2 Vadikan
:) вот уж исправил так исправил
за идеи перешедшие в Руководство всеже точнее отражает суть благодарности,
gora писал в ветке Авторам аддонов и полезные вещи и начинал собирать первый FAQ по аддонам,
а уж позже когда мы...гхм...не сошлись во мнениях, не давал советов по написанию.
Если меня кто - нибудь спросит, я бы оставил gora в Благодарностях (не потому что это я так хочу, а потому
что заслужил). Если он против формулировок, можно оставить просто ник.
volk1234
08-06-2008, 02:07
Предлагаю для обсуждения и добавления в Руководство более подробное определение аддонов Sysoc:
Было:
Аддоны, использующие SYSOC.
Аддоны этого типа устанавливаются с помощью INF скриптов.
Новая редакция:
Аддоны, использующие SYSOC.
Аддоны этого типа иcпользуют особый вид установки – установку дополнительных компонентов Windows- System optional components ( Sysoc ). Разработчики решили дать выбор – устанавливать необязательные приложения или нет. Например, Игры, WMP и т.д.
В установленной системе за работу с дополнительными компонентами отвечает Sysocmgr.exe, который запускается при выборе вкладки “Установка компонентов Windows” в оснастке “Установка и удаление программ”. Все отображаемые данные Sysocmgr.exe, как и установщик Windows, берет из файла Sysoc.inf. Следовательно, именно этот файл и изменяется для добавления аддона в процесс установки Windows и в оснастку “Установка и удаление программ”.
Для этого, в INF- скрипт добавляется секция [Optional Components] , а также дополнительные инструкции в исполняемую секцию. Подробнее читайте в Приложении 5. http://oszone.net/6946#d6. Кроме того, необходимо изменить сам файл Sysoc.inf, добавив в него запись об интегрируемом аддоне, иначе аддон не установится. Это и понятно, откуда установщик узнает, что аддон необходимо установить если записи в Sysoc.inf нет? О синтаксисе файла Sysoc.inf читайте в Приложении 4. http://oszone.net/6946#d3
Метод Sysoc не делает аддон частью системы или дополнительным компонентом, он только позволяет использовать механизм Sysoc для установки и удаления аддона. Например, если для вашего аддона достаточно скопировать файлы в определенные папки, то файл Sysoc.inf изменять вообще не нужно. Для копирования файлов достаточно сделать записи в файлах Txtsetup.sif и Dosnet, правда это уже не будет метод Sysoc.
Основные конфигурационные файлы для этого типа аддона:
Txtsetup
Dosnet
Sysoc
Аддоны этого типа устанавливаются с помощью INF скриптов...далее по тексту
В Приложении 2. Тонкости использования inf- файлов \ 2. Методы деинсталяции,
будет обновлен "Готовый шаблон" от James Zero. http://forum.oszone.net/post-780927-109.html
Жду ваших замечаний
(чтобы незабыть) небольшая опечатка:
Petya V4sechkin за Update Pack и возможность писать под него свои аддоны, а тайже за всегда квалифицированную помощь
volk1234
09-07-2008, 20:05
Обновлено Руководство на сайте (http://oszone.net/6946):
лог изменений:
09.07.2008 версия статьи 1.32 - Обновлено определение метода Sysoc: Раздел II. Глава 1. Аддоны, использующие SYSOC и Готовый шаблон от jameszero: Раздел 3. Приложение 2. Подраздел 2. Методы деинсталяции.
volk1234
20-07-2008, 20:55
Задумал доработать поподробнее приложение про этапы Установки Windows XP с упором на расшифровку файлов и компонентов используемых мастером установки на соответствующих этапах.
Пока обновил только часть про логи, чуть дополнено описание, добавлена информация про пару логов.
█ Log-файлы создаваемые в процессе установки.
Размещение log-файлов: \%Windir%
◦ Setupapi.log
Файл протоколирования Setupapi.dll, которая обрабатывает INF-файлы во время установки аппаратных средств и регистрации. Этот файл может содержать записи, которые начинаются c [#E], что указывает на проблемы или ошибки. Отслеживает установку через INF-файлы и на установленной системе. Запись вносится каждый раз при исполнении строки из inf- файла.
◦ Setuperr.log
Общий журнал ошибок в процессе установки.
◦ Setuplog.txt
Общий журнал установки. Содержит все действия, совершаемые во время последней установки.
◦ Upgrade.txt
Лог менеджера установки, после запуска проверки на совместимость с windows XP.
◦ Setupact.log
Журнал регистрации операций. Содержит записи об операциях программы установки в хронологическом порядке. Например, это операции копирования файлов и создания записей и системном реестре, определения аппаратных устройств и установки драйверов. В нем также содержатся записи журнала ошибок - Setuperr.log .
◦ Winnt32.log
Содержит информацию о тестовом режиме установки, но создается только в процессе апгрейда системы, а не установки.
◦ Wsdu.log
Лог динамического обновления установки (только если используется динамическое обновление)
◦ Сomsetup.log
Описывает установку дополнительных компонентов и компонентов СОМ+
◦ NetSetup.log
%windir%\debug\NetSetup.log Регистрирует процесс вхождения в домен или рабочую группу.
◦ Setup.log
%windir%\repair\setup.log - Хранит информацию, которая используется консолью восстановления.
◦ Log-файлы генерируемые дополнительными компонентами.
Все кто знает что- нибудь про этапы установки сверх написаного в руководстве присоединяйтесь.
Black Babay
22-07-2008, 17:29
volk1234, подскажите пожалуйста как можно создать через inf-файл 2 ярлыка и в Quick Launch и в программах?
Бьюсь весь день. Создает или там или там :(
volk1234
23-07-2008, 11:09
Black Babay
Неплохо бы исходник привести. Тогда все могли бы найти ошибки в коде.
Ну давайте поппробуем пока так:
[DefaultInstall]
ProfileItems =PROG.AddShortcut, PROG.AddShortQuick
Допустим вот так, через запятую с двумя разными секциями пробовали?
Black Babay
23-07-2008, 11:18
volk1234, так не пробовал :unsure: пытался ввести вторую переменную... Уже ушел пробовать. Спасибо!
Black Babay
23-07-2008, 11:38
Чего-то не срабатывает.
[[Version]
Signature="$Windows NT$"
AdvancedINF=2.5
[Optional Components]
Starter
[Starter]
OptionDesc =%PROG_NAME%
Modes =0,1,2,3
AddReg =PROG.AddReg
ProfileItems =PROG.AddShortcut, PROG.AddShortQuick
Uninstall =mUninst.Uninstall
[DefaultInstall]
OptionDesc =%PROG_NAME%
Modes =0,1,2,3
AddReg =PROG.AddReg
ProfileItems =PROG.AddShortcut, PROG.AddShortQuick
Uninstall =mUninst.Uninstall
[Uninstall]
BeginPrompt =BeginUnInsPrompt
RunPreSetupCommands =Close.Prog:1
RunPostSetupCommands =Dir.Delete
EndPrompt =EndUnInsPrompt
DelFiles =PNF.File
DelReg =PROG.DelReg
ProfileItems =PROG.DelShortcut, PROG.DelShortcutQuick
[BeginUnInsPrompt]
Title =Деинсталляция %PROG_NAME%
Prompt =Вы действительно хотите удалить %PROG_NAME% и все компоненты программы?
ButtonType =YESNO
[Close.Prog]
TASKKILL /F /IM %PROG_1%
TSKILL %PROG_2%
ping -n 3 127.0.0.1
[Dir.Delete]
rundll32.exe advpack.dll,DelNodeRunDLL32 %16422%\%PROG_DIR%
[EndUnInsPrompt]
Prompt =Программа %PROG_NAME% удалена.
[PROG.AddReg]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayIcon",0,"%16422%\%PROG_DIR%\%PROG_1%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayName",,%PROG_NAME%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayVersion",,"v%PROG_VERS%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","Publisher",,"%PROG_MADE%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","URLInfoAbout",,"%PROG_URL%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","UninstallString",,"rundll32.exe advpack.dll,LaunchINFSection %17%\%PROG_INF%,Uninstall"
[PROG.DelReg]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon"
[PROG.AddShortcut]
Name =%SRTC_NAME%
CmdLine =16422,%PROG_DIR%,%PROG_1%
WorkingDir =16422,%PROG_DIR%
SubDir =%PROG_SDIR%
InfoTip =%PROG_INFO%
[PROG.AddShortQuick]
Name =%SRTC_NAME%
CmdLine =16422,%PROG_DIR%,%PROG_1%
WorkingDir =16422,%PROG_DIR%
SubDir =%PROG_SDIR2%
InfoTip =%PROG_INFO%
[PROG.DelShortcut]
Name =%SRTC_NAME%,0x00000002
SubDir =%PROG_SDIR%
[PROG.DelShortcutQuick]
Name =%SRTC_NAME%,0x00000002
SubDir =%PROG_SDIR2%
[Strings]
PROG_DIR ="Starter"
PROG_NAME ="CodeStuff Starter 5.6.0.28"
SRTC_NAME ="Starter"
PROG_VERS ="5.6.0.28"
PROG_MADE ="CodeStuff"
PROG_URL ="http://codestuff.tripod.com/products_starter.html"
PROG_INF ="Starter.inf"
PROG_1 =Starter.exe
PROG_2 =Starter
PROG_SDIR ="Утилиты\Starter"
PROG_SDIR2 ="..\..\Application Data\Microsoft\Internet Explorer\Quick Launch"
PROG_INFO ="Менеджер автозагрузки, диспетчер задач и служб"
Black Babay
23-07-2008, 11:56
Нашел, где собака порылась.
было так:
[PROG.AddShortQuick]
Name =%SRTC_NAME%
а надо так:
[PROG.AddShortQuick]
Name =%SRTC_NAME%,0x00000001
Извените за назойливость, но возник вопрос. А как реализовать этот ярлык для дефолтного юзера?
jameszero
23-07-2008, 12:07
Black Babay
Пока нет профиля реального пользователя (а его нет до первого входа в систему), ярлыки имеющие флаг 0x00000001 будут создаваться в дефолтном профиле. При установке на "живой" системе, ярлык с флагом 0x00000001 будет создан только у текущего пользователя.
В руководстве не указано, но есть ещё один флаг:
0x00000003 - Удалить пункт меню для текущего пользователя
Его необходимо использовать в секции удаления ярлыка:
[PROG.DelShortcutQuick]
Name =%SRTC_NAME%,0x00000003
SubDir =%PROG_SDIR2%
Black Babay
23-07-2008, 12:18
jameszero, спасибо!
При установке на "живой" системе, ярлык с флагом 0x00000001 будет создан только у текущего пользователя. »
Это я усвоил. Собственно говоря, хотел узнать, есть ли возможность при установке на "живую" систему добавить ярлык дефолтному пользователю.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.