Freigeben über


Einführung in Analysestrukturen

Sie können in Ihrem Registrar-Skript einen oder mehrere Analysestrukturen definieren, wobei jede Analysestruktur die folgende Form hat:

<root-key>{<registry expression>}+

Dabei gilt Folgendes:

<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> ::=
  ein beliebiges Nicht-NULL-Zeichen.

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

<Key-Type> ::=
s | d

Hinweis

HKEY_CLASSES_ROOT und HKCR sind gleichwertig, HKEY_CURRENT_USER und HKCU sind gleichwertig, usw.

Eine Analysestruktur kann mehrere Schlüssel und Unterschlüssel zum <Stammschlüssel> hinzufügen. Der Registrar hält jedes Unterschlüssel-Handle offen, bis der Parser die Analyse aller Unterschlüssel abgeschlossen hat. Das ist effizienter, als jeweils nur einen einzigen Schlüssel zu verarbeiten. Ein Beispiel:

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

Hier öffnet (erstellt) der Registrar zunächst HKEY_CLASSES_ROOT\MyVeryOwnKey. Er sieht dann, dass MyVeryOwnKey einen Unterschlüssel hat. Anstatt den Schlüssel nach MyVeryOwnKey zu schließen, behält der Registrar das Handle und öffnet (erstellt) HasASubKey mit diesem übergeordneten Handle. (Die System-Registry kann langsamer sein, wenn kein übergeordnetes Handle geöffnet ist). Das Öffnen von HKEY_CLASSES_ROOT\MyVeryOwnKey und das anschließende Öffnen von HasASubKey mit MyVeryOwnKey als übergeordnetem Element ist also schneller als das Öffnen von MyVeryOwnKey, das Schließen von MyVeryOwnKey und das anschließende Öffnen von MyVeryOwnKey\HasASubKey.

Weitere Informationen

Erstellen von Registrar-Skripts