Freigeben über


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 , 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.

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ür CLSID. (Dieser Wert ist die CLSID der Registrierungsstelle für die Verwendung mit CoCreateInstance.)

Da CLSID freigegeben ist, sollte sie nicht im Unregister-Modus entfernt werden. Die Anweisung gibt dies an, indem angegeben wird, NoRemove CLSIDdass 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 , ProgIDruft 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 ThreadingModeleinem 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.

Siehe auch

Erstellen von Registrierungsskripts