Поделиться через


Примеры сценариев реестра

Создание сценариев в примерах этого раздела показано, как добавлять ключ в системный реестр, зарегистрировать сервер модели COM регистратора и указать несколько деревьев parse.

Добавьте ключ к HKEY_CURRENT_USER

Следующие анализируют дерево иллюстрируют простой скрипт, который добавляет один ключ в системный реестр.В частности, скрипт добавляет ключ, MyVeryOwnKey, в HKEY_CURRENT_USER.Кроме того, по умолчанию будет присвоено строковое значение HowGoesIt? к новому ключу.

HKEY_CURRENT_USER
{
   'MyVeryOwnKey' = s 'HowGoesIt?'
}

Этот скрипт можно легко расширить, чтобы определить несколько подразделов:

HKCU
{
   'MyVeryOwnKey' = s 'HowGoesIt?'
   {
      'HasASubkey'
      {
         'PrettyCool?' = d '55'
         val 'ANameValue' = s 'WithANamedValue'
      }
   }
}

Теперь скрипт добавляет подраздел HasASubkey, в MyVeryOwnKey.К этому подразделу, он добавляет и подраздел PrettyCool? (значение по умолчанию DWORD 55) и ANameValue именованное значение (со строковым значением WithANamedValue).

Зарегистрировать сервер модели COM регистратора

Следующий скрипт регистрирует сам сервер модели COM регистратора.

HKCR
{
   ATL.Registrar = s 'ATL Registrar Class'
   {
      CLSID = s '{44EC053A-400F-11D0-9DCD-00A0C90391D3}'
   }
   NoRemove CLSID
   {
      ForceRemove {44EC053A-400F-11D0-9DCD-00A0C90391D3} =
                   s 'ATL Registrar Class'
      {
         ProgID = s 'ATL.Registrar'
         InprocServer32 = s '%MODULE%'
         {
            val ThreadingModel = s 'Apartment'
         }
      }
   }
}

Во время выполнения этом дерево синтаксического анализа добавляет ключ ATL.Registrar к HKEY_CLASSES_ROOT.К этому новому ключу, затем.

  • Определяет ATL Registrar Class как строковое значение ключа по умолчанию.

  • Добавляет CLSID например подраздела.

  • Определяет {44EC053A-400F-11D0-9DCD-00A0C90391D3} для CLSID.(Это значение CLSID регистратора для использования с CoCreateInstance).

Поскольку CLSID совместно использовано, он не должен быть удалено в режиме регистрация которого отменяется.Оператор, NoRemove CLSID, делает это, указав, что CLSID должно быть открывается в режиме регистра и игнорирован в режиме регистрация которого отменяется.

Оператор ForceRemove предоставляет функцию домоустройства путем удаления ключ и все его подразделов до повторного создания ключа.Это может быть полезно, если изменились имена подразделов.В этом сценарии примере ForceRemove проверяет наличие {44EC053A-400F-11D0-9DCD-00A0C90391D3} уже существует.Если это так, ForceRemove:

  • Рекурсивно удаляет {44EC053A-400F-11D0-9DCD-00A0C90391D3} и все его подразделов.

  • Воссоздает {44EC053A-400F-11D0-9DCD-00A0C90391D3}.

  • Добавляет ATL Registrar Class как по умолчанию строковое значение для {44EC053A-400F-11D0-9DCD-00A0C90391D3}.

Дерево синтаксического разбора теперь добавляет 2 новых подраздела к {44EC053A-400F-11D0-9DCD-00A0C90391D3}.Первый ключ, ProgID возвращает строковое значение по умолчанию, ProgID.Второй ключ, InprocServer32 возвращает строковое значение, %MODULE%, которое является значением препроцессора объясненное в разделе Использование подстановочных параметров (препроцессор регистратора), этой статьи.InprocServer32 также возвращает именованное значение, ThreadingModel со строковым значением Apartment.

Определите несколько синтаксический анализ деревья

Чтобы указать более дерево синтаксического анализа в скрипте, просто устанавливает одно дерево в конце других.Например, следующий скрипт добавляет ключ, MyVeryOwnKey, к деревьям проанализировать, как для HKEY_CLASSES_ROOT, так и для HKEY_CURRENT_USER:

HKCR
{
   'MyVeryOwnKey' = s 'HowGoesIt?'
}
HKEY_CURRENT_USER
{
   'MyVeryOwnKey' = s 'HowGoesIt?'
}
ПримечаниеПримечание

В скрипте регистратора, 4K максимальный размер токена.Токен любой элемент (a узнаваемый в синтаксисе). В предыдущем сценарии примере HKCR, HKEY_CURRENT_USER, 'MyVeryOwnKey' и 'HowGoesIt?' все токены.

См. также

Ссылки

Создать скрипты регистратора