Beispiele für die Registrierungsskripterstellung
In den Skriptbeispielen in diesem Thema wird veranschaulicht, wie Sie der Systemregistrierung einen Schlüssel hinzufügen, den COM-Registrierungsstellenserver registrieren und mehrere Analysestrukturen angeben.
Hinzufügen eines Schlüssels zu HKEY_CURRENT_USER
Die folgende Analysestruktur veranschaulicht ein einfaches Skript, das der Systemregistrierung einen einzelnen Schlüssel hinzufügt. Insbesondere fügt das Skript den Schlüssel , MyVeryOwnKey
zu HKEY_CURRENT_USER
. Außerdem wird dem neuen Schlüssel der Standardzeichenfolgenwert HowGoesIt
zugewiesen:
HKEY_CURRENT_USER
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
Dieses Skript kann ganz einfach erweitert werden, um mehrere Unterschlüssel wie folgt zu definieren:
HKCU
{
'MyVeryOwnKey' = s 'HowGoesIt'
{
'HasASubkey'
{
'PrettyCool' = d '55'
val 'ANameValue' = s 'WithANamedValue'
}
}
}
Nun fügt das Skript einen Unterschlüssel , HasASubkey
zu MyVeryOwnKey
. Diesem Unterschlüssel werden sowohl der PrettyCool
Unterschlüssel (mit dem Standardwert DWORD
55) als auch der ANameValue
benannte Wert (mit einem Zeichenfolgenwert von WithANamedValue
) hinzugefügt.
Registrieren des Registrierungsstellen-COM-Servers
Das folgende Skript registriert den Registrierungsstellen-COM-Server selbst.
HKCR
{
ATL.Registrar = s 'ATL Registrar Class'
{
CLSID = s '{44EC053A-400F-11D0-9DCD-00A0C90391D3}'
}
NoRemove CLSID
{
ForceRemove {44EC053A-400F-11D0-9DCD-00A0C90391D3} = s 'ATL Registrar Class'
{
ProgID = s 'ATL.Registrar'
InprocServer32 = s '%MODULE%'
{
val ThreadingModel = s 'Apartment'
}
}
}
}
Zur Laufzeit fügt diese Analysestruktur den ATL.Registrar
Schlüssel hinzu HKEY_CLASSES_ROOT
. Für diesen neuen Schlüssel gilt folgendes:
Gibt
ATL Registrar Class
als Standardzeichenfolgenwert des Schlüssels an.Fügt als Unterschlüssel hinzu
CLSID
.Gibt an
{44EC053A-400F-11D0-9DCD-00A0C90391D3}
fürCLSID
. (Dieser Wert ist die CLSID der Registrierungsstelle für die Verwendung mitCoCreateInstance
.)
Da CLSID
freigegeben ist, sollte sie nicht im Unregister-Modus entfernt werden. Die Anweisung gibt dies an, indem angegeben wird, NoRemove CLSID
dass CLSID
im Registermodus geöffnet und im Unregistermodus ignoriert werden soll.
Die ForceRemove
Anweisung stellt eine Haushaltungsfunktion bereit, indem sie einen Schlüssel und alle zugehörigen Unterschlüssel entfernen, bevor Sie den Schlüssel erneut erstellen. Dies kann nützlich sein, wenn sich die Namen der Unterschlüssel geändert haben. In diesem Skriptingbeispiel wird überprüft, ForceRemove
ob {44EC053A-400F-11D0-9DCD-00A0C90391D3}
bereits vorhanden ist. Wenn dies der Fall ist, ForceRemove
:
Rekursiv löscht
{44EC053A-400F-11D0-9DCD-00A0C90391D3}
und alle zugehörigen Unterschlüssel.{44EC053A-400F-11D0-9DCD-00A0C90391D3}
Erstellt neu.Fügt
ATL Registrar Class
als Standardzeichenfolgenwert für{44EC053A-400F-11D0-9DCD-00A0C90391D3}
.
Die Analysestruktur fügt nun zwei neue Unterschlüssel hinzu {44EC053A-400F-11D0-9DCD-00A0C90391D3}
. Der erste Schlüssel , ProgID
ruft einen Standardzeichenfolgenwert ab, der die ProgID ist. Der zweite Schlüssel InprocServer32
, ruft einen Standardzeichenfolgenwert ab, %MODULE%
der im Abschnitt "Using Replaceable Parameters (The Registrar's Preprocessor)" in diesem Artikel erläutert wird. InprocServer32
ruft auch einen benannten Wert mit ThreadingModel
einem Zeichenfolgenwert von Apartment
.
Angeben mehrerer Analysestrukturen
Wenn Sie mehr als eine Analysestruktur in einem Skript angeben möchten, platzieren Sie einfach eine Struktur am Ende eines anderen. Das folgende Skript fügt z. B. den Schlüssel MyVeryOwnKey
, den Analysestrukturen für beide HKEY_CLASSES_ROOT
und HKEY_CURRENT_USER
:
HKCR
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
HKEY_CURRENT_USER
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
Hinweis
In einem Registrierungsstellenskript ist 4K die maximale Tokengröße. (Ein Token ist jedes erkennbare Element in der Syntax.) Im vorherigen Skriptingbeispiel, HKCR
, HKEY_CURRENT_USER
, 'MyVeryOwnKey'
und 'HowGoesIt'
sind alle Token.