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.

Confira também

Como criar scripts do Registrador