Delen via


Voorbeelden van registerscripts

De scriptvoorbeelden in dit onderwerp laten zien hoe u een sleutel toevoegt aan het systeemregister, de COM-server van de registrar registreert en meerdere parseringsstructuren opgeeft.

Een sleutel toevoegen aan HKEY_CURRENT_USER

De volgende parseringsstructuur illustreert een eenvoudig script waarmee één sleutel aan het systeemregister wordt toegevoegd. Het script voegt met name de sleutel toe MyVeryOwnKeyaan HKEY_CURRENT_USER. Ook wordt de standaardtekenreekswaarde van HowGoesIt de nieuwe sleutel toegewezen:

HKEY_CURRENT_USER
{
    'MyVeryOwnKey' = s 'HowGoesIt'
}

Dit script kan eenvoudig worden uitgebreid om meerdere subsleutels als volgt te definiëren:

HKCU
{
    'MyVeryOwnKey' = s 'HowGoesIt'
    {
        'HasASubkey'
        {
            'PrettyCool' = d '55'
            val 'ANameValue' = s 'WithANamedValue'
        }
    }
}

Met het script wordt nu een subsleutel toegevoegd, HasASubkey aan MyVeryOwnKey. Aan deze subsleutel wordt zowel de PrettyCool subsleutel (met een standaardwaarde DWORD van 55) als de ANameValue benoemde waarde (met een tekenreekswaarde) WithANamedValuetoegevoegd.

De COM-server van de registrar registreren

Met het volgende script wordt de COM-registrarserver zelf geregistreerd.

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'
            }
        }
    }
}

Tijdens runtime voegt deze parseringsstructuur de ATL.Registrar sleutel toe aan HKEY_CLASSES_ROOT. Voor deze nieuwe sleutel gaat u als volgt te werk:

  • Hiermee geeft u ATL Registrar Class de standaardtekenreekswaarde van de sleutel op.

  • Voegt CLSID toe als een subsleutel.

  • Hiermee specificeert {44EC053A-400F-11D0-9DCD-00A0C90391D3} voor CLSID. (Deze waarde is de CLSID van de registrar voor gebruik met CoCreateInstance.)

Aangezien CLSID wordt gedeeld, mag het niet worden verwijderd in de unregister-modus. De instructie, NoRemove CLSID, doet dit door aan te geven dat CLSID moet worden geopend in Registreren-modus en genegeerd in Deregistreren-modus.

De ForceRemove instructie biedt een huishoudfunctie door een sleutel en alle bijbehorende subsleutels te verwijderen voordat de sleutel opnieuw wordt gemaakt. Dit kan handig zijn als de namen van de subsleutels zijn gewijzigd. In dit scriptvoorbeeld ForceRemove wordt gecontroleerd of {44EC053A-400F-11D0-9DCD-00A0C90391D3} deze al bestaat. Als dat het geval is: ForceRemove

  • Recursief verwijdert {44EC053A-400F-11D0-9DCD-00A0C90391D3} en alle subsleutels.

  • Opnieuw maken {44EC053A-400F-11D0-9DCD-00A0C90391D3}.

  • Voegt ATL Registrar Class toe als de standaardtekenreekswaarde voor {44EC053A-400F-11D0-9DCD-00A0C90391D3}.

De parseringsstructuur voegt nu twee nieuwe subsleutels toe aan {44EC053A-400F-11D0-9DCD-00A0C90391D3}. De eerste sleutel, ProgID, krijgt een standaardtekenreekswaarde die de ProgID is. De tweede sleutel, InprocServer32, krijgt een standaard tekenreekswaarde, %MODULE%, die een preprocessorwaarde is zoals uitgelegd in de sectie Vervangbare Parameters Gebruiken (De Preprocessor van de Registrar) van dit artikel. InprocServer32 haalt ook een benoemde waarde op, ThreadingModelmet een tekenreekswaarde van Apartment.

Meerdere parseringsstructuren opgeven

Als u meer dan één parseringsstructuur in een script wilt opgeven, plaatst u één boomstructuur aan het einde van een andere. Met dit script wordt de sleutel MyVeryOwnKey bijvoorbeeld toegevoegd aan de parsebomen voor zowel HKEY_CLASSES_ROOT als HKEY_CURRENT_USER.

HKCR
{
    'MyVeryOwnKey' = s 'HowGoesIt'
}
HKEY_CURRENT_USER
{
    'MyVeryOwnKey' = s 'HowGoesIt'
}

Opmerking

In een registrarscript is 4K de maximale tokengrootte. (Een token is een herkenbaar element in de syntaxis.) In het vorige scriptvoorbeeld, HKCR, HKEY_CURRENT_USER, en 'MyVeryOwnKey''HowGoesIt' zijn alle tokens.

Zie ook

Registrarscripts maken