了解語法樹

注意

Active Template Library(ATL)將持續獲得支援。 不過,我們不再新增功能或更新文件。

您可以在登錄器指令碼中定義一或多個剖析樹狀結構,其中每個剖析樹狀結構都有下列形式:

<root-key>{<登錄運算式>}+

其中:

<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> ::=
  [c0 />ForceRemove | NoRemove | ] val [<] [ >< ]

<刪除鍵> ::=
  Delete <機碼名稱>

<Key-Name> ::=
  ' <字母與數字>+'

<AlphaNumeric> ::=
  任何非 null 字元。

<Key-Value> ::=
  <鍵類型><鍵名稱>

<Key-Type> ::=
  s | d

注意

HKEY_CLASSES_ROOT 和 HKCR 相等;HKEY_CURRENT_USER 和 HKCU 相等;等等。

剖析樹可以將多個鍵和子鍵新增至 <root-key>。 ** 登錄器會將每個子機碼控制碼保持開啟,直到解析器完成對其所有子機碼的解析為止。 它比一次操作單一按鍵更有效率。 以下是範例:

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

在此,登錄器一開始會開啟 (建立) HKEY_CLASSES_ROOT\MyVeryOwnKey。 然後看到 MyVeryOwnKey 有子鍵。 登錄器會保留父代控制代碼並使用這個控制代碼開啟 (建立) HasASubKey,而不是關閉 MyVeryOwnKey 的控制代碼。 (未開啟父代控制代碼時,系統登錄可能會變慢。) 因此,開啟 HKEY_CLASSES_ROOT\MyVeryOwnKey,然後以 MyVeryOwnKey 作為父代開啟 HasASubKey,會比開啟 MyVeryOwnKey、關閉 MyVeryOwnKey,然後開啟 MyVeryOwnKey\HasASubKey 更快。

另請參閱

建立登錄器指令碼