Exemplos de script do Registro

Os exemplos de script neste tópico demonstram como adicionar uma chave ao Registro do sistema, registrar o servidor COM do Registrador e especificar várias árvores de análise.

Adicionar uma chave a HKEY_CURRENT_USER

A árvore de análise a seguir ilustra um script simples que adiciona uma única chave ao registro do sistema. Em particular, o script adiciona a chave MyVeryOwnKey a HKEY_CURRENT_USER. Ele também atribui o valor padrão HowGoesIt da cadeia de caracteres à nova chave:

HKEY_CURRENT_USER
{
    'MyVeryOwnKey' = s 'HowGoesIt'
}

Esse script pode ser facilmente estendido para definir várias subchaves da seguinte maneira:

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

Agora, o script adiciona uma subchave, HasASubkey a MyVeryOwnKey. A essa subchave, ela adiciona a subchave PrettyCool (com um valor padrão DWORD de 55) e o valor nomeado ANameValue (com um valor de cadeia de caracteres de WithANamedValue).

Registrar o servidor COM do Registrador

O script a seguir registra o servidor COM do Registrador propriamente dito.

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'
            }
        }
    }
}

Em tempo de execução, essa árvore de análise adiciona a chave ATL.Registrar a HKEY_CLASSES_ROOT. Para essa nova chave, ela faz o seguinte:

  • Especifica ATL Registrar Class como o valor de cadeia de caracteres padrão da chave.

  • Adiciona CLSID como uma subchave.

  • Especifica {44EC053A-400F-11D0-9DCD-00A0C90391D3} para CLSID. (Esse valor é o CLSID do Registrador para uso com CoCreateInstance.)

Como CLSID é compartilhado, ele não deve ser removido no modo Cancelar registro. A instrução, NoRemove CLSID, faz isso indicando que CLSID deve ser aberta no modo de Registrador e ignorada no modo Cancelar registro.

A instrução ForceRemove fornece uma função de limpeza removendo uma chave e todas as respectivas subchaves antes de recriar a chave. Isso poderá ser útil se os nomes das subchaves tiverem sido alterados. Neste exemplo de script, ForceRemove verifica se {44EC053A-400F-11D0-9DCD-00A0C90391D3} já existe. Se já existir, ForceRemove:

  • Excluirá recursivamente {44EC053A-400F-11D0-9DCD-00A0C90391D3} e todas as respectivas subchaves.

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

  • Adicionará ATL Registrar Class como o valor de cadeia de caracteres padrão para {44EC053A-400F-11D0-9DCD-00A0C90391D3}.

A árvore de análise agora adiciona duas novas subchaves a {44EC053A-400F-11D0-9DCD-00A0C90391D3}. A primeira chave, ProgID, obtém um valor de cadeia de caracteres padrão que é o ProgID. A segunda chave, InprocServer32, obtém um valor de cadeia de caracteres padrão, %MODULE%, que é um valor de pré-processador explicado na seção Como usar parâmetros substituíveis (pré-processador do Registrador) deste artigo. InprocServer32 também obtém um valor nomeado, ThreadingModel, com um valor de cadeia de caracteres de Apartment.

Especificar várias árvores de análise

Para especificar mais de uma árvore de análise em um script, basta colocar uma árvore no final de outra. Por exemplo, o seguinte script a seguir adiciona a chave, MyVeryOwnKey, às árvores de análise para ambos HKEY_CLASSES_ROOT e HKEY_CURRENT_USER:

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

Observação

Em um script do Registrador, 4K é o tamanho máximo do token. (Um token é qualquer elemento reconhecível na sintaxe.) No exemplo de script anterior, HKCR, HKEY_CURRENT_USER, 'MyVeryOwnKey' e 'HowGoesIt' são todos tokens.

Confira também

Criando scripts do Registrador