Share via


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íč , MyVeryOwnKeydo 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íč , HasASubkeydo 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} pro CLSID. (Tato hodnota je CLSID registrátora pro použití s CoCreateInstance.)

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íč, ProgIDzíská výchozí řetězcovou hodnotu, která je ProgID. Druhý klíč, InprocServer32zí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 , ThreadingModels ř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íč , MyVeryOwnKeydo 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é

Vytváření skriptů registrátoru