このトピックに含まれるスクリプト例では、キーをシステム レジストリに追加する方法、レジストラー COM サーバーを登録する方法、複数のパース ツリーを指定する方法が示されます。
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が指定されます。 (この値は、CoCreateInstanceで使うレジストラーの CLSID です。)
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}が追加されます。
パース ツリーでは、{44EC053A-400F-11D0-9DCD-00A0C90391D3} に 2 つの新しいサブキーが追加されています。 最初のキー ProgID は、既定の文字列値 (ProgID) を受け取ります。 2 番目のキー InprocServer32 は、既定の文字列値 (%MODULE%) を受け取ります。これは、この記事の「置き換え可能パラメーターの使用 (レジストラー プリプロセッサ)」セクションで説明されているプリプロセッサ値です。
InprocServer32 は、文字列値 ThreadingModel を持つ名前付きの値 Apartment も受け取ります。
複数のパース ツリーを指定する
1 つのスクリプトで複数のパース ツリーを指定するには、単に 1つのツリーの末尾に別のツリーを配置します。 たとえば、次のスクリプトでは、キー MyVeryOwnKey を HKEY_CLASSES_ROOT と HKEY_CURRENT_USER 両方のパース ツリーに追加します。
HKCR
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
HKEY_CURRENT_USER
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
注
レジストラー スクリプトでは、4K が最大のトークン サイズです。 (トークンとは、構文内で認識可能なすべての要素のことです。)上記のスクリプト例では、HKCR、HKEY_CURRENT_USER、'MyVeryOwnKey'、'HowGoesIt' はすべてトークンです。