Ejemplos de scripting del Registro
En los ejemplos de scripting de este tema, se muestra cómo agregar una clave al Registro del sistema, registrar el servidor COM del registrador y especificar varios árboles de análisis.
Incorporación de una clave a HKEY_CURRENT_USER
En el árbol de análisis siguiente, se muestra un script sencillo que agrega una sola clave al Registro del sistema. En concreto, el script agrega la clave, MyVeryOwnKey
, a HKEY_CURRENT_USER
. También asigna el valor de cadena predeterminado de HowGoesIt
a la clave nueva:
HKEY_CURRENT_USER
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
Este script se puede ampliar fácilmente para definir varias subclaves de la manera siguiente:
HKCU
{
'MyVeryOwnKey' = s 'HowGoesIt'
{
'HasASubkey'
{
'PrettyCool' = d '55'
val 'ANameValue' = s 'WithANamedValue'
}
}
}
Ahora, el script agrega una subclave, HasASubkey
, a MyVeryOwnKey
. A esta subclave, agrega la subclave PrettyCool
(con un valor DWORD
predeterminado de 55) y el valor ANameValue
con nombre (con un valor de cadena de WithANamedValue
).
Registro del servidor COM del registrador
El script siguiente registra el servidor COM del registrador mismo.
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'
}
}
}
}
En tiempo de ejecución, este árbol de análisis agrega la clave ATL.Registrar
a HKEY_CLASSES_ROOT
. Luego, para esta clave nueva:
Especifica
ATL Registrar Class
como el valor de cadena predeterminado de la clave.Agrega
CLSID
como una subclave.Especifica
{44EC053A-400F-11D0-9DCD-00A0C90391D3}
paraCLSID
. (Este valor es el CLSID del registrador para su uso conCoCreateInstance
).
Como CLSID
se comparte, no se debe quitar en modo Anular registro. Para ello, la instrucción NoRemove CLSID
indica que CLSID
se debe abrir en modo Registrar y omitir en modo Anular registro.
La instrucción ForceRemove
proporciona una función de mantenimiento, quitando una clave y todas sus subclaves antes de volver a crear la clave. Esto puede resultar útil si los nombres de las subclaves cambiaron. En este ejemplo de scripting, ForceRemove
comprueba si {44EC053A-400F-11D0-9DCD-00A0C90391D3}
ya existe. Si es así, ForceRemove
:
Elimina
{44EC053A-400F-11D0-9DCD-00A0C90391D3}
y todas las subclaves de manera recursiva.Vuelve a crear
{44EC053A-400F-11D0-9DCD-00A0C90391D3}
.Agrega
ATL Registrar Class
como el valor de cadena predeterminado para{44EC053A-400F-11D0-9DCD-00A0C90391D3}
.
El árbol de análisis ahora agrega dos subclaves nuevas a {44EC053A-400F-11D0-9DCD-00A0C90391D3}
. La primera clave, ProgID
, obtiene un valor de clave predeterminado que es ProgID. La segunda clave, InprocServer32
, obtiene un valor de cadena predeterminado, %MODULE%
, que es un valor de preprocesador explicado en la sección Uso de parámetros reemplazables (el preprocesador del registro) de este artículo. InprocServer32
también obtiene un valor con nombre, ThreadingModel
, con un valor de cadena de Apartment
.
Especificación de varios árboles de análisis
Para especificar más de un árbol de análisis en un script, basta con colocar un árbol al final de otro. Por ejemplo, en el script siguiente se agrega la clave, MyVeryOwnKey
, a los árboles de análisis para HKEY_CLASSES_ROOT
y HKEY_CURRENT_USER
:
HKCR
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
HKEY_CURRENT_USER
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
Nota:
En un script del registrador, el tamaño máximo del token es 4K. (Un token es cualquier elemento reconocible en la sintaxis). En el ejemplo de scripting anterior, HKCR
, HKEY_CURRENT_USER
, 'MyVeryOwnKey'
y 'HowGoesIt'
son tokens.