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 , MyVeryOwnKey
a 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}
perCLSID
. Questo valore è clSID del registrar per l'uso conCoCreateInstance
.
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.