Приклади сценаріїв у цій статті продемонструвати, як додати ключ до системного реєстру; зареєструвати реєстратора COM сервера; Вкажіть кілька дерева синтаксичного аналізу.
Наступні розбору дерево ілюструє простий скрипт, який додає одним ключем до системного реєстру. Зокрема, сценарій додає ключа, MyVeryOwnKey , а також HKEY_CURRENT_USER . Він також призначає значення рядка за промовчанням HowGoesIt? новим ключем:
HKEY_CURRE&NT_USER
{
nbsp; 'MyVeryOwnKey' = s 'HowGoesIt'?
}
Цей сценарій може бути легко розширена визначити кілька підрозділи наступним чином:
HKCU
{
nbsp; 'MyVeryOwnKey' = s 'HowGoesIt'?
{
'HasASubkey'
{
"PrettyCool?" = d '55'
Валь 'A&NameValue' = 'WithANamedValue' s
}
}
}
Тепер, сценарій додає підрозділ, HasASubkey , а також MyVeryOwnKey . До цього підрозділу, він додає, як на PrettyCool? підрозділу (з за замовчуванням значення DWORD 55) і ANameValue їм значення (вартість stringWithANamedValue).
Наступні сценарій реєструє самого реєстратора COM сервера.
HKCR
{
nbsp; ATL.Реєстратор = s ' ATL 2.0 реєстратора клас
{
CLSID = '{44EC053A-400F-11D0-9DCD-00A0C90391D3}' s
}
&NoRemove CLSID
{
ForceRemove {44EC053A-400F-11D0-9DCD-00A0C90391D3} =
s ' ATL 2.0 реєстратора клас
{
ProgID = s ' ATL.Реєстратор '
InprocServer32 = '% МОДУЛЬ' s
{
Валь ThreadingModel = 'Квартири' s
}
}
}
}
Під час виконання, це дерево розбору додає до ATL.Registrar ключ до HKEY_CLASSES_ROOT . До цього новий ключ вона потім:
ATL Registrar 2.0 Class як ключ, значення рядка за промовчанням.CLSID як підрозділ.{44EC053A-400F-11D0-9DCD-00A0C90391D3} для CLSID . (Це значення є у реєстроутримувача CLSID для використання з CoCreateInstance.)
Оскільки CLSID є спільні, вона не повинні бути видалені в Unregister режимі. Заява, NoRemove CLSID , робить це за вказівкою, що CLSID повинна бути відкритим у режимі без реєстрації і ігнорується в Unregister режимі.
На ForceRemove заяву надає функцію ведення домашнього господарства шляхом видалення ключа та її підрозділи перед відтворюючи ключ. Це може бути корисним, якщо імена підрозділах змінилися. У цьому прикладі сценаріїв ForceRemove перевіряє, якщо {44EC053A-400F-11D0-9DCD-00A0C90391D3} вже існує. Якщо це так,ForceRemove:
{44EC053A-400F-11D0-9DCD-00A0C90391D3} і всіх його підрозділах.{44EC053A-400F-11D0-9DCD-00A0C90391D3}.ATL Registrar 2.0 Class як значення рядка за промовчанням{44EC053A-400F-11D0-9DCD-00A0C90391D3}.
Дерево розбору тепер додає два нових підрозділів до {44EC053A-400F-11D0-9DCD-00A0C90391D3} . Першим ключовим, ProgID , отримує значення рядка за промовчанням, яке програми. Другий ключ, InprocServer32 , отримує значення рядка, %MODULE% , тобто препроцесора значення описано в розділі, За допомогою параметрів змінних (реєстратора препроцесор), ця стаття. InprocServer32 також отримує іменовані значення, ThreadingModel , рядок на сумуApartment.
Щоб вказати більше одного аналізу маніфесту дерево в сценарій, просто помістіть одного дерева в кінці іншого. Наприклад, наступні скріпт додає ключа, MyVeryOwnKey , до дерева синтаксичного аналізу, для обох HKEY_CLASSES_ROOT іHKEY_CURRENT_USER:
HKCR
{
nbsp; 'MyVeryOwnKey' = s 'HowGoesIt'?
}
HKEY_CURRE&NT_USER
{
'MyVeryOwnKey' = s 'HowGoesIt'?
}
Приміткаnbsp; У сценарії реєстратора 4 K є максимального розміру маркера. (Маркер-це будь-який невідомий елемент у синтаксис). У попередньому прикладі сценаріїв HKCR , HKEY_CURRE&NT_USER , 'MyVeryOwnKey' , і 'HowGoesIt?' мають всі маркери.