Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Die aktive Vorlagenbibliothek (ACTIVE Template Library, ATL) wird weiterhin unterstützt. Wir fügen jedoch keine Features mehr hinzu oder aktualisieren die Dokumentation.
In den Skriptbeispielen in diesem Thema wird veranschaulicht, wie Sie der Systemregistrierung einen Schlüssel hinzufügen, den Registrar COM-Server registrieren und mehrere Parsbäume 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 , MyVeryOwnKeyzu 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 , HasASubkeyzu 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.
Registrar-COM-Server registrieren
Das folgende Skript registriert den Registrar-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 dann:
Gibt
ATL Registrar Classals 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 des Registrars für die Verwendung mitCoCreateInstance.)
Da CLSID geteilt ist, sollte es im Unregister-Modus nicht entfernt werden. Die Anweisung NoRemove CLSID gibt dies an, indem angegeben wird, dass CLSID im Registermodus geöffnet und im Unregistermodus ignoriert werden soll.
Die ForceRemove-Anweisung führt eine Haushaltungsfunktion aus, indem sie einen Schlüssel und alle zugehörigen Unterschlüssel entfernt, bevor sie den Schlüssel erneut erstellt. Dies kann nützlich sein, wenn sich die Namen der Unterschlüssel geändert haben. In diesem Skriptingbeispiel wird ForceRemove überprüft, ob {44EC053A-400F-11D0-9DCD-00A0C90391D3} bereits vorhanden ist. Wenn dies der Fall ist, ForceRemove:
Löscht rekursiv
{44EC053A-400F-11D0-9DCD-00A0C90391D3}und alle seine Unterschlüssel.Stellt
{44EC053A-400F-11D0-9DCD-00A0C90391D3}neu her.Fügt
ATL Registrar Classals Standardzeichenfolgenwert für{44EC053A-400F-11D0-9DCD-00A0C90391D3}.
Die Analysestruktur fügt nun zwei neue Unterschlüssel zu {44EC053A-400F-11D0-9DCD-00A0C90391D3} hinzu. Der erste Schlüssel , ProgIDruft einen Standardzeichenfolgenwert ab, der die ProgID ist. Der zweite Schlüssel InprocServer32 erhält einen Standardwert für Zeichenfolgen, %MODULE%, der ein Vorverarbeitungswert ist, der im Abschnitt "Using Replaceable Parameters (The Registrar's Preprocessor)" dieses Artikels erläutert wird.
InprocServer32 erhält auch einen benannten Wert, ThreadingModel, mit einem Zeichenfolgenwert von Apartment.
Mehrere Analysestrukturen angeben
Wenn Sie mehr als einen Parsebaum in einem Skript angeben möchten, platzieren Sie einfach einen Baum am Ende eines anderen. Das folgende Skript fügt zum Beispiel den Schlüssel MyVeryOwnKey den Analysestrukturen von sowohl HKEY_CLASSES_ROOT als auch HKEY_CURRENT_USER hinzu.
HKCR
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
HKEY_CURRENT_USER
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
Hinweis
In einem Registrar-Skript 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.