Przykłady skryptów rejestru

Uwaga

Aktywna biblioteka szablonów (ATL) nadal jest obsługiwana. Nie dodajemy już funkcji ani nie aktualizujemy dokumentacji.

Przykłady skryptów w tym temacie pokazują, jak dodać klucz do rejestru systemowego, zarejestrować serwer COM Registrar i określić wiele drzew analizy.

Dodawanie klucza do HKEY_CURRENT_USER

Poniższe drzewo analizy ilustruje prosty skrypt, który dodaje pojedynczy klucz do rejestru systemowego. W szczególności skrypt dodaje klucz , MyVeryOwnKeydo HKEY_CURRENT_USER. Również przypisuje nowemu kluczowi domyślną wartość ciągu HowGoesIt.

HKEY_CURRENT_USER
{
    'MyVeryOwnKey' = s 'HowGoesIt'
}

Ten skrypt można łatwo rozszerzyć, aby zdefiniować wiele podklucza w następujący sposób:

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

Teraz skrypt dodaje podklucz , HasASubkeydo MyVeryOwnKey. Do tego podklucza dodaje zarówno podklucz PrettyCool (z wartością domyślną 55), jak i nazwaną wartość DWORD (ze łańcuchową wartością ANameValue).

Rejestrowanie serwera COM rejestratora

Poniższy skrypt rejestruje sam serwer COM "Registrar".

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

W czasie wykonywania dodaje się klucz ATL.Registrar do elementu HKEY_CLASSES_ROOT w drzewie analizy. Następnie w tym nowym kluczu:

  • Określa ATL Registrar Class jako domyślną wartość ciągu klucza.

  • Dodaje CLSID jako podklucz.

  • Określa {44EC053A-400F-11D0-9DCD-00A0C90391D3} dla CLSID. (Ta wartość jest identyfikatorem CLSID rejestratora do użycia z CoCreateInstance.)

Ponieważ CLSID jest współużytkowany, nie należy go usuwać w trybie wyrejestrowania. Instrukcja NoRemove CLSID robi to, wskazując, że CLSID powinno być otwarte w trybie rejestracji i ignorowane w trybie wyrejestrowania.

Instrukcja ForceRemove udostępnia funkcję porządkowania, usuwając klucz i wszystkie jego podklucze przed ponownym utworzeniem klucza. Może to być przydatne, jeśli nazwy podkluczów uległy zmianie. W tym przykładzie skryptu ForceRemove sprawdza, czy {44EC053A-400F-11D0-9DCD-00A0C90391D3} już istnieje. Jeśli tak, : ForceRemove

  • Rekursywnie usuwa {44EC053A-400F-11D0-9DCD-00A0C90391D3} i wszystkie jego podklucze.

  • Ponownie tworzy {44EC053A-400F-11D0-9DCD-00A0C90391D3}.

  • Dodaje ATL Registrar Class jako domyślną wartość ciągu dla elementu {44EC053A-400F-11D0-9DCD-00A0C90391D3}.

Drzewo analizy dodaje teraz dwa nowe podklucze do elementu {44EC053A-400F-11D0-9DCD-00A0C90391D3}. Pierwszy klucz , ProgIDpobiera domyślną wartość ciągu, która jest wartością ProgID. Drugi klucz, InprocServer32, pobiera domyślną wartość ciągu, %MODULE%, czyli wartość preprocesora wyjaśniona w sekcji Using Replaceable Parameters (Preprocessor Rejestratora) tego artykułu. InprocServer32 także otrzymuje nazwaną wartość ThreadingModel, o wartości ciągu znaków Apartment.

Określanie wielu drzew analizy

Aby określić więcej niż jedno drzewo analizy w skrypcie, po prostu umieść jedno drzewo na końcu drugiego. Na przykład następujący skrypt dodaje klucz , MyVeryOwnKeydo drzew analizy dla obu HKEY_CLASSES_ROOT i HKEY_CURRENT_USER:

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

Uwaga

W skrypcie rejestratora 4K jest maksymalnym rozmiarem tokenu. (Token to jakikolwiek rozpoznawalny element w składni). W poprzednim przykładzie skryptu, HKCR, HKEY_CURRENT_USER, 'MyVeryOwnKey', i 'HowGoesIt' są wszystkimi tokami.

Zobacz też

Tworzenie skryptów rejestratora