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
.