レジストリ スクリプトの例
このトピックに含まれるスクリプト例では、キーをシステム レジストリに追加する方法、レジストラー 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
がサブキーとして追加されます。CLSID
に対して{44EC053A-400F-11D0-9DCD-00A0C90391D3}
が指定されます。 (この値は、CoCreateInstance
で使うレジストラーの CLSID です。)
CLSID
は共有されるため、登録解除モードで削除されるべきではありません。 ステートメント NoRemove CLSID
によってこれが実行されます。CLSID
は登録モードで開かれ、登録解除モードで無視される必要があることが示されます。
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 つのスクリプトで複数のパース ツリーを指定するには、単に 1つのツリーの末尾に別のツリーを配置します。 たとえば、次のスクリプトでは、キー MyVeryOwnKey
を HKEY_CLASSES_ROOT
と HKEY_CURRENT_USER
両方のパース ツリーに追加します。
HKCR
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
HKEY_CURRENT_USER
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
Note
レジストラー スクリプトでは、4K が最大のトークン サイズです。 (トークンとは、構文内で認識可能なすべての要素のことです。)上記のスクリプト例では、HKCR
、HKEY_CURRENT_USER
、'MyVeryOwnKey'
、'HowGoesIt'
はすべてトークンです。