В сценариев в этой статье примерах как добавить ключ системного реестра; Регистрация сервера 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» = s «WithANamedValue»
}
}
}
Теперь, сценарий добавляет подраздел, HasASubkey , до MyVeryOwnKey . В этот подраздел, он добавляет оба PrettyCool? подраздела (значение по умолчанию типа DWORD из 55) и ANameValue с именем value (со строковым значениемWithANamedValue).
Следующий сценарий регистрирует сам сервер COM регистратором.
HKCR
{
nbsp; ATL.Регистратор = s ' ATL 2.0 регистратор класса
{
CLSID = s «{44EC053A-400F-11D0-9DCD-00A0C90391D3}»
}
&NoRemove CLSID
{
ForceRemove {44EC053A-400F-11D0-9DCD-00A0C90391D3} =
s ' ATL 2.0 регистратор класса
{
Идентификатор progID = s ' ATL.Регистратор '
InprocServer32 = s «% MODULE %»
{
Вал 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 открыт в режиме Register и игнорируется в режиме 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 , получает строковое значение по умолчанию, которое является 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?' все маркеры.