パース ツリーを理解する

レジストラー スクリプトで 1 つ以上のパース ツリーを定義できます。各パース ツリーの形式は次のとおりです。

<ルート キー>{<レジストリ式>}+

各値の説明:

<ルート キー> ::=
HKEY_CLASSES_ROOT | HKEY_CURRENT_USER |
HKEY_LOCAL_MACHINE | HKEY_USERS |
HKEY_PERFORMANCE_DATA | HKEY_DYN_DATA |
HKEY_CURRENT_CONFIG | HKCR | HKCU |
HKLM | HKU | HKPD | HKDD | HKCC

<レジストリ式> ::=
<追加キー> | <削除キー>

<追加キー> ::=
  [ForceRemove | NoRemove | val] <キー名> [<キー値>] [ {<追加キー>} ]

<削除キー> ::=
Delete<キー名>

<キー名> ::=
'<英数字>+'

<英数字> ::=
  null 以外の任意の文字。

<キー値> ::=
<キー型><キー名>

<キー型> ::=
s | d

Note

HKEY_CLASSES_ROOTHKCRHKEY_CURRENT_USERHKCU、などは等価です。

パース ツリーでは、複数のキーとサブキーを <ルート キー> に追加できます。 レジストラーでは、パーサーによるすべてのサブキーの解析が完了するまで、各サブキー ハンドルを開いた状態に保ちます。 その方が、一度に 1 つのキーに対して操作を行うよりも効率的です。 次に例を示します。

HKEY_CLASSES_ROOT
{
    'MyVeryOwnKey'
    {
        'HasASubKey'
        {
            'PrettyCool'
        }
    }
}

ここでは、レジストラーが最初に HKEY_CLASSES_ROOT\MyVeryOwnKey を開きます (作成します)。 次に、MyVeryOwnKey にサブキーがあることを確認します。 レジストラーでは、MyVeryOwnKey のキーを閉じるのではなく、そのハンドルを維持し、この親ハンドルを使って HasASubKey を開きます (作成します)。 (親ハンドルが開かなくなった場合、システム レジストリの速度が低下する可能性があります)。だから、親として開HKEY_CLASSES_ROOT\MyVeryOwnKeyいてから開MyVeryOwnKeyHasASubKeyく方が、開くMyVeryOwnKey、閉じるMyVeryOwnKeyMyVeryOwnKey\HasASubKey開くよりも速い。

関連項目

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