Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 Classjako domyślną wartość ciągu klucza.Dodaje
CLSIDjako podklucz.Określa
{44EC053A-400F-11D0-9DCD-00A0C90391D3}dlaCLSID. (Ta wartość jest identyfikatorem CLSID rejestratora do użycia zCoCreateInstance.)
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 Classjako 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.