구문 분석 트리 이해
등록자 스크립트에서 하나 이상의 구문 분석 트리를 정의할 수 있으며, 이러한 경우 각 구문 분석 트리의 형식은 다음과 같습니다.
<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_ROOT
는 HKCR
과 동일하고, HKEY_CURRENT_USER
는 HKCU
와 동일하며, 나머지도 마찬가지입니다.
구문 분석 트리는 <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
를 여는 것보다 빠릅니다.