Noções básicas sobre árvores de análise
Você pode definir uma ou mais árvores de análise no script do Registrador, em que cada árvore de análise tem o seguinte formato:
<root-key>{<expressão do registro>}+
em que:
<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> ::=
qualquer caractere não nulo.<Key-Value> ::=
<Key-Type> <Key-Name><Key-Type> ::=
s
|d
Observação
HKEY_CLASSES_ROOT
e HKCR
são equivalentes; HKEY_CURRENT_USER
e HKCU
são equivalentes; e assim por diante.
Uma árvore de análise pode adicionar várias chaves e subchaves à <chave raiz>. O Registrador mantém cada identificador de subchave aberto até que o analisador tenha concluído a análise de todas as respectivas subchaves. Isso é mais eficiente do que operar em apenas uma chave por vez. Veja um exemplo:
HKEY_CLASSES_ROOT
{
'MyVeryOwnKey'
{
'HasASubKey'
{
'PrettyCool'
}
}
}
Aqui, o Registrador abre inicialmente (cria) HKEY_CLASSES_ROOT\MyVeryOwnKey
. Em seguida, ele vê que MyVeryOwnKey
tem uma subchave. Em vez de fechar a chave para MyVeryOwnKey
, o Registrador mantém o identificador e abre (cria) HasASubKey
usando esse identificador pai. (O registro do sistema pode ficar mais lento quando nenhum identificador pai está aberto.) Portanto, abrir HKEY_CLASSES_ROOT\MyVeryOwnKey
e depois abrir HasASubKey
com MyVeryOwnKey
como o pai é mais rápido do que abrir MyVeryOwnKey
, fechar MyVeryOwnKey
e abrir MyVeryOwnKey\HasASubKey
.