次の方法で共有


レジストリのスクリプトの例

ここでは、レジストリへのキーの追加、レジストラー COM サーバーの登録、および複数のパース ツリーの指定を行うスクリプトの例を示します。

HKEY_CURRENT_USER へのキーの追加

次のパース ツリーは、レジストリに 1 つのキーを追加する簡単なスクリプトを示しています。 このスクリプトでは、HKEY_CURRENT_USER に MyVeryOwnKey というキーを追加します。 また、新しいキーに HowGoesIt? という既定の文字列値を代入します。

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

このスクリプトを拡張して複数のサブキーを簡単に定義できます。たとえば、次のようになります。

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

この例では、MyVeryOwnKey に HasASubkey というサブキーを追加しています。 また、このサブキーに対してサブキー 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'
         }
      }
   }
}

このパース ツリーは、実行時に HKEY_CLASSES_ROOT に ATL.Registrar キーを追加します。 この新しいキーに対して、パース ツリーは次の処理を実行します。

  • キーの既定の文字列値として ATL Registrar Class を指定します。

  • サブキーとして CLSID を追加します。

  • CLSID として {44EC053A-400F-11D0-9DCD-00A0C90391D3} を指定します。 この値は、CoCreateInstance と共に使用するレジストラーの CLSID です。

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} を再作成します。

  • {44EC053A-400F-11D0-9DCD-00A0C90391D3} の既定の文字列値として ATL Registrar Class を追加します。

次に、パース ツリーは {44EC053A-400F-11D0-9DCD-00A0C90391D3} に新しいサブキーを 2 つ追加します。 最初の ProgID キーは、ProgID となる既定の文字列値を取得します。 2 番目の InprocServer32 キーは、既定の文字列値 %MODULE% を取得します。この値は、「置き換え可能パラメーター (レジストラーのプリプロセッサ) の使用」で説明されているプリプロセッサ値です。 InprocServer32 は、また、Apartment という文字列値を持つ名前付きの値 ThreadingModel を取得します。

複数のパース ツリーの指定

スクリプトに複数のパース ツリーを指定するのは簡単で、1 つのツリーの後に別のツリーを記述するだけで済みます。 たとえば、次のスクリプトでは、HKEY_CLASSES_ROOT と HKEY_CURRENT_USER の両方のパース ツリーに MyVeryOwnKey キーを追加します。

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

注意

レジストラー スクリプトでは、トークンの最大サイズは 4 KB です。 トークンとは、構文で認識できるすべての要素です。前のスクリプト例では、HKCR, HKEY_CURRENT_USER、'MyVeryOwnKey'、および 'HowGoesIt?' はすべてトークンです。

参照

参照

レジストラー スクリプトの作成