Příklady skriptování registru
Příklady skriptování v tomto tématu ukazují, jak přidat klíč do systémového registru, zaregistrovat server COM registrátora a zadat více stromů analýzy.
Přidání klíče do HKEY_CURRENT_USER
Následující strom analýzy znázorňuje jednoduchý skript, který přidá do systémového registru jeden klíč. Konkrétně skript přidá klíč , MyVeryOwnKey
do HKEY_CURRENT_USER
. Přiřadí také výchozí řetězcovou hodnotu HowGoesIt
k novému klíči:
HKEY_CURRENT_USER
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
Tento skript lze snadno rozšířit a definovat více podklíčů následujícím způsobem:
HKCU
{
'MyVeryOwnKey' = s 'HowGoesIt'
{
'HasASubkey'
{
'PrettyCool' = d '55'
val 'ANameValue' = s 'WithANamedValue'
}
}
}
Nyní skript přidá podklíč , HasASubkey
do MyVeryOwnKey
. K tomuto podklíči PrettyCool
přidá podklíč (s výchozí DWORD
hodnotou 55) i ANameValue
pojmenovanou hodnotu (s řetězcovou hodnotou WithANamedValue
).
Registrace serveru COM registrátora
Následující skript zaregistruje samotný server COM registrátora.
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'
}
}
}
}
V době běhu tento strom analýzy přidá ATL.Registrar
klíč do HKEY_CLASSES_ROOT
. Na tento nový klíč pak:
Určuje
ATL Registrar Class
jako výchozí řetězcovou hodnotu klíče.Přidá
CLSID
jako podklíč.Určuje
{44EC053A-400F-11D0-9DCD-00A0C90391D3}
proCLSID
. (Tato hodnota je CLSID registrátora pro použití sCoCreateInstance
.)
Vzhledem k tomu CLSID
, že je sdílený, neměl by být odebrán v režimu zrušení registrace. Tento příkaz označuje, NoRemove CLSID
že CLSID
by se měl otevřít v režimu registrace a ignorovat v režimu zrušit registraci.
Příkaz ForceRemove
poskytuje funkci úklidu odebráním klíče a všech jeho podklíčů před opětovným vytvořením klíče. To může být užitečné, pokud se změnily názvy podklíčů. V tomto příkladu skriptování zkontroluje, ForceRemove
jestli {44EC053A-400F-11D0-9DCD-00A0C90391D3}
už existuje. Pokud ano, ForceRemove
:
Rekurzivně odstraní
{44EC053A-400F-11D0-9DCD-00A0C90391D3}
a všechny jeho podklíče.Znovu vytvoří
{44EC053A-400F-11D0-9DCD-00A0C90391D3}
.Přidá
ATL Registrar Class
jako výchozí hodnotu řetězce pro{44EC053A-400F-11D0-9DCD-00A0C90391D3}
.
Strom analýzy teď přidá do souboru dva nové podklíče {44EC053A-400F-11D0-9DCD-00A0C90391D3}
. První klíč, ProgID
získá výchozí řetězcovou hodnotu, která je ProgID. Druhý klíč, InprocServer32
získá výchozí řetězcovou hodnotu, %MODULE%
což je hodnota preprocesoru vysvětlená v části Použití nahraditelných parametrů (Preprocesor registrátora) tohoto článku. InprocServer32
získá také pojmenovanou hodnotu , ThreadingModel
s řetězcovou hodnotou Apartment
.
Zadání více stromů analýzy
Pokud chcete zadat více než jeden strom analýzy ve skriptu, jednoduše umístěte jeden strom na konec druhého. Například následující skript přidá klíč , MyVeryOwnKey
do parsování stromů pro obě HKEY_CLASSES_ROOT
a HKEY_CURRENT_USER
:
HKCR
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
HKEY_CURRENT_USER
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
Poznámka
Ve skriptu registrátora je maximální velikost tokenu 4K. (Token je jakýkoli rozpoznatelný prvek v syntaxi.) V předchozím příkladu skriptování , HKCR
, HKEY_CURRENT_USER
'MyVeryOwnKey'
a 'HowGoesIt'
jsou všechny tokeny.
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro