Condividi tramite


Esempio di script del Registro di sistema

Gli esempi di scripting in questo argomento illustrano come aggiungere una chiave al Registro di sistema, registrare il server COM e specificare più alberi di analisi.

Aggiungere una chiave a HKEY_CURRENT_USER

L'albero di analisi seguente illustra uno script semplice che aggiunge una singola chiave al Registro di sistema. In particolare, lo script aggiunge la chiave , MyVeryOwnKeya HKEY_CURRENT_USER. Assegna inoltre il valore stringa predefinito di HowGoesIt alla nuova chiave:

HKEY_CURRENT_USER
{
    'MyVeryOwnKey' = s 'HowGoesIt'
}

Questo script può essere facilmente esteso per definire più sottochiavi come indicato di seguito:

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

A questo punto, lo script aggiunge una sottochiave, HasASubkey, a MyVeryOwnKey. A questa sottochiave, aggiunge sia la PrettyCool sottochiave (con un valore predefinito DWORD pari a 55) che il ANameValue valore denominato (con un valore stringa di WithANamedValue).

Registrare il server COM registrar

Lo script seguente registra il server 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'
            }
        }
    }
}

In fase di esecuzione, questa struttura ad albero di analisi aggiunge la ATL.Registrar chiave a HKEY_CLASSES_ROOT. A questa nuova chiave, è quindi possibile:

  • Specifica ATL Registrar Class come valore stringa predefinito della chiave.

  • Aggiunge CLSID come sottochiave.

  • Specifica {44EC053A-400F-11D0-9DCD-00A0C90391D3} per CLSID. Questo valore è clSID del registrar per l'uso con CoCreateInstance.

Poiché CLSID è condiviso, non deve essere rimosso in modalità di annullamento della registrazione. L'istruzione , NoRemove CLSID, esegue questa operazione indicando che CLSID deve essere aperto in modalità Register e ignorato in modalità Annulla registrazione.

L'istruzione ForceRemove fornisce una funzione di pulizia rimuovendo una chiave e tutte le relative sottochiavi prima di creare nuovamente la chiave. Ciò può essere utile se i nomi delle sottochiavi sono stati modificati. In questo esempio di scripting verifica ForceRemove se {44EC053A-400F-11D0-9DCD-00A0C90391D3} esiste già. In caso affermativo, ForceRemove:

  • Elimina {44EC053A-400F-11D0-9DCD-00A0C90391D3} in modo ricorsivo e tutte le relative sottochiavi.

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

  • Aggiunge ATL Registrar Class come valore stringa predefinito per {44EC053A-400F-11D0-9DCD-00A0C90391D3}.

L'albero di analisi aggiunge ora due nuove sottochiavi a {44EC053A-400F-11D0-9DCD-00A0C90391D3}. La prima chiave, ProgID, ottiene un valore stringa predefinito che è ProgID. La seconda chiave, InprocServer32, ottiene un valore stringa predefinito, %MODULE%, che è un valore del preprocessore illustrato nella sezione Using Replaceable Parameters (The Registrar's Preprocessor) di questo articolo. InprocServer32 ottiene anche un valore denominato, ThreadingModel, con un valore stringa pari a Apartment.

Specificare più alberi di analisi

Per specificare più di un albero di analisi in uno script, è sufficiente posizionare un albero alla fine di un altro. Ad esempio, lo script seguente aggiunge la chiave , MyVeryOwnKey, agli alberi di analisi per e HKEY_CLASSES_ROOT HKEY_CURRENT_USER:

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

Nota

In uno script registrar, 4K è la dimensione massima del token. Un token è un elemento riconoscibile nella sintassi. Nell'esempio di scripting precedente, HKCR, HKEY_CURRENT_USER, 'MyVeryOwnKey'e 'HowGoesIt' sono tutti token.

Vedi anche

Creazione degli script del Registro di sistema