Compartir a través de


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} para CLSID. (Este valor es el CLSID del registrador para su uso con CoCreateInstance).

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.

Consulte también

Crear scripts del registrador