パース ツリーについて

更新 : 2007 年 11 月

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

<root key>{<registry expression>}+

指定項目 :

<root key> ::= 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

<registry expression> ::= <Add Key> | <Delete Key>

<Add Key> ::= [ForceRemove | NoRemove | val]<Key Name>

[<Key Value>][{< Add Key>}]

<Delete Key> ::= Delete<Key Name>

<Key Name> ::= '<AlphaNumeric>+'

<AlphaNumeric> ::= any character not NULL, i.e. ASCII 0

<Key Value> ::== <Key Type><Key Name>

<Key Type> ::= s | d

<Key Value> ::= '<AlphaNumeric>'

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

HKEY_CLASSES_ROOT と HKCR は等しく、HKEY_CURRENT_USER と HKCU は等しい、のように対応しています。

パース ツリーでは、<root key> に複数のキーとサブキーを追加できます。その場合、パーサーがすべてのサブキーの解析を完了するまで、パース ツリーのサブキーのハンドルは開いたままになります。この方法は、次の例に示すように、一度に 1 つのキーを処理するよりも効率的です。

HKEY_CLASSES_ROOT

{

'MyVeryOwnKey'

{

'HasASubKey'

{

'PrettyCool?'

}

}

}

ここでは、レジストラが最初に HKEY_CLASSES_ROOT\MyVeryOwnKey を開くかまたは作成します。次に、レジストラは、MyVeryOwnKey にサブキーがあることを見つけます。レジストラは、MyVeryOwnKey のキーを閉じずにハンドルを保持し、この親ハンドルを使用して HasASubKey を開くかまたは作成します。親ハンドルを開かない場合、レジストリが遅くなることがあります。したがって、まず HKEY_CLASSES_ROOT\MyVeryOwnKey を開き、次に MyVeryOwnKey を親にして HasASubKey を開いた方が、MyVeryOwnKey を開いてからいったん閉じ、その後で MyVeryOwnKey\HasASubKey を開いた場合に比べて処理が速くなります。

参照

参照

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