次の方法で共有


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

更新 : 2007 年 11 月

ここでは、レジストリへのキーの追加、レジストラ 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?'

}

k32htktc.alert_note(ja-jp,VS.90).gifメモ :

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

参照

参照

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