Freigeben über


Beispiele für die Registrierungsskripterstellung

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 Class als Standardzeichenfolgenwert des Schlüssels an.

  • Fügt als Unterschlüssel hinzu CLSID .

  • Gibt an {44EC053A-400F-11D0-9DCD-00A0C90391D3} für CLSID. (Dieser Wert ist die CLSID des Registrars für die Verwendung mit CoCreateInstance.)

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 Class als 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.

Siehe auch

Erstellen von Registrierungsskripts