Przykłady skryptów rejestru
Przykłady skryptów w tym temacie pokazują, jak dodać klucz do rejestru systemowego, zarejestrować serwer COM rejestratora 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 , MyVeryOwnKey
do HKEY_CURRENT_USER
. Przypisuje również domyślną wartość HowGoesIt
ciągu do nowego klucza:
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 , HasASubkey
do MyVeryOwnKey
. Do tego podklucza dodaje zarówno podklucz PrettyCool
(z wartością domyślną DWORD
55), jak i ANameValue
nazwaną wartość (z wartością WithANamedValue
ciągu ).
Rejestrowanie serwera COM rejestratora
Poniższy skrypt rejestruje sam serwer COM rejestratora.
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 to drzewo analizy dodaje ATL.Registrar
klucz do HKEY_CLASSES_ROOT
elementu . W tym nowym kluczu wykonaj następujące polecenie:
Określa
ATL Registrar Class
jako domyślną wartość ciągu klucza.Dodaje
CLSID
jako 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 , robi to, wskazując, NoRemove CLSID
że CLSID
powinny być otwarte w trybie Rejestracji i ignorowane w trybie wyrejestrowania.
Instrukcja ForceRemove
udostępnia funkcję utrzymania domu, 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 skryptów sprawdza, ForceRemove
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}
polecenie .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 , ProgID
pobiera 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
pobiera również nazwaną wartość , ThreadingModel
z wartością ciągu .Apartment
Określanie wielu drzew analizy
Aby określić więcej niż jedno drzewo analizy w skrycie, po prostu umieść jedno drzewo na końcu drugiego. Na przykład następujący skrypt dodaje klucz , MyVeryOwnKey
do 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 jest dowolnym rozpoznawalnym elementem w składni). W poprzednim przykładzie skryptów wszystkie HKCR
tokeny to , HKEY_CURRENT_USER
, 'MyVeryOwnKey'
i 'HowGoesIt'
.