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}
paraCLSID
. (Esse valor é o CLSID do Registrador para uso comCoCreateInstance
.)
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.