구문 분석 트리 이해

등록자 스크립트에서 하나 이상의 구문 분석 트리를 정의할 수 있으며, 이러한 경우 각 구문 분석 트리의 형식은 다음과 같습니다.

<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> ::=
  null이 아닌 모든 문자.

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

<Key-Type> ::=
s | d

참고 항목

HKEY_CLASSES_ROOTHKCR과 동일하고, HKEY_CURRENT_USERHKCU와 동일하며, 나머지도 마찬가지입니다.

구문 분석 트리는 <root-key>에 여러 개의 키와 하위 키를 추가할 수 있습니다. 등록자는 파서가 모든 하위 키에 대한 구문 분석을 완료할 때까지 각 하위 키 핸들을 열어 둡니다. 이는 한 번에 하나의 키로 작업하는 것보다 더 효율적입니다. 예를 들면 다음과 같습니다.

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

여기서 등록자는 처음에 HKEY_CLASSES_ROOT\MyVeryOwnKey를 엽니다(생성합니다). 그런 다음 MyVeryOwnKey에 하위 키가 있는지 확인합니다. 등록자는 MyVeryOwnKey에 대한 키를 닫는 대신 핸들을 유지하고 이 부모 핸들을 사용하여 HasASubKey를 엽니다(생성합니다). (어떤 부모 핸들도 열려 있지 않으면 시스템 레지스트리가 느려질 수 있습니다.) 따라서 HKEY_CLASSES_ROOT\MyVeryOwnKey를 연 다음 MyVeryOwnKey를 부모로 하여 HasASubKey를 여는 것이 MyVeryOwnKey를 열고 MyVeryOwnKey를 닫은 다음 MyVeryOwnKey\HasASubKey를 여는 것보다 빠릅니다.

참고 항목

등록자 스크립트 만들기