Delphi Brasil - Nosso esporte é desenvolver!

Trabalhando com o Registro do Windows PDF Imprimir E-mail
  O registro do Windows é um banco de dados hierárquico que contém virtualmente toda a informação sobre a configuração do seu PC. Em versões anteriores do Windows, essas configurações eram mantidas em arquivos como config.sys, autoexec.bat, win.ini, system.ini, control.ini, entre outros, A estrutura do registro é similar à estrutura do arquivo INI. Contudo, ele vai além do conceito dos arquivos INI, já que oferece uma estrutura hierárquica similar às pastas e arquivos no seu HD. De fato, você acessa aos elementos do registro da mesma forma que acessa as pastas e arquivos.
 Aqui, examinaremos apenas os registro do Win 95/98, embora o registro do NT seja bastante similar.

O Editor do Registro

O editor do registro-regedit.exe- é um utilitário que permite que você veja, procure, modifique, e salve o banco de dados do registro do Windows. Ele não valida os valores que você escreve, mas permite qualquer operação. Então você deve tomar muito cuidado ao modificar o registro.

Para iniciar o editor do registro, execute regedit.exe (sob o Win NT, execute regedt32.exe com privilégios de administrador).

O editor de registro é dividido em dois painéis. O primeiro da esquerda mostra a você uma estrutura hierárquica do banco de dados (a tela se parece com a do Windows Explorer), e a da direita mostra os valores.

O registro é organizado em chaves (keys) e sub chaves (sub keys). Cada chave contém um valor, e tem um nome, um tipo ou classe e o próprio valor. O nome é uma string que identifica a chave. O tamanho e o formato do valor depende do tipo do dado.

O registro é dividido em cinco chaves principais-não há forma de adicionar ou apagar as chaves neste nível. Apenas duas dessas chaves são efetivamente salvas no HD-HKEY_LOCAL_MACHINE e HKEY_USERS. As outras são apenas ramificações das chaves principais ou são criadas dinamicamente pelo Windows.

HKEY_LOCAL_MACHINE Esta chave contém informação sobre hardware, aplicações e serviços. Uma parte da informação sobre hardware é atualizada automaticamente quando o computador carrega o sistema operacional. Os dados armazenados nesta chave são compartilhados com quaisquer usuários. Ela tem muitas sub chaves.
Config: Contém dados de configuração para diferentes hardwares.

Enum: Estes são os dados dos dispositivos. Para cada dispositivo em seu computador, você pode encontrar informação tal como o tipo do dispositivo, o fabricante do hardware, os drivers do dispositivo e a configuração.

Hardware: Contém uma lista de portas seriais, processadores e processadores de ponto-flutuante.

Network: Contém informação sobre a rede

Security: Contém informação sobre a segurança da sua rede.

Software: Esta chave contém dados sobre os softwares instalados.

System: Cotém dados que checam quais drivers de dispositivos são utilizados pelo Windows e como eles estão configurados.

HKEY_CLASSES_ROOT: Esta chave é um alias de uma ramificação de HKEY_LOCAL_MACHINE\Software\Classes e contém informações sobre OLE, drag-and-drop, atalhos e associações de arquivos.

HKEY_CURRENT_CONFIG: Esta chave é também um alias. Ela contém uma cópia da ramificação HKEY_LOCAL_MACHINE\Config, com a configuração do computador atual.

HKEY_DYN_DATA: Algumas informações armazenadas no registro mudam com frequência, então o Windows mantém parte do registro na memória em vez de deixar no HD. Por exemplo, esta chave armazena informação sobre plug-and-play e sobre a performance do computador. Esta chave tem duas sub chaves.

Config Manager: Esta chave contém todos os códigos sobre informação de problemas do hardware, com seus status. Há também a sub chave HKEY_LOCAL_MACHINE\Enum, mas ela é escrita de uma forma diferente.

PerfStats: Ela contém dados sobre a performance do sistema e da rede.

HKEY_USERS: Esta importante chave contém a sub chave .default e uma outra chave para cada usuário que tem acesso ao computador. Se há apenas um usuário, apenas a chave .default existe. Cada sub chave mantém as preferências de cada usuário - cores do desktop, fontes usadas, e também as configurações de muitos programas. Um sub chave de usuário contém cinco importantes sub chaves.

AppEvent: Contém o caminho dos arquivos de audio que o Windows toca em eventos específicos, tais como ao esvaziar a lixeira, etc.

Control Panel: Contém as configurações definidas no Painel de Controle. Eram armazenadas em win.ini e control.ini.

Keyboard Layouts: Contém alguns códigos avançados que identifica a atual disposição do teclado e como ele está setado no Painel de Controle.

Network: Esta chave armazena sub chaves que descrevem atalhos para as recentes e para a rede atual.

RemoteAccess: As configurações de Acesso Remoto são armazenadas aqui.

Software: Contém todas as configurações de softwares. Estes dados eram armazenados em win.ini e arquivos INI privados.

• Argumentos de Linha de Comando do Registro
FILENAME.REG Para unir um arquivo .reg com o registro

/L:SYSTEM Para especificar a posição do SYSTEM.DAT

/R:USER Para especificar a posição de USER.DAT

/e FILENAME.REG [KEY] Para exportar o registro para um arquivo. Se a chave é especificada, toda a ramificação será exportada.
/c FILANAME.REG Para substituir todo o registro com o arquivo .reg

/s Para trabalhar sem exibir informações ou Warnings.

HKEY_CURRENT_USER: Este é um alias para o usuário corrente de HKEY_USERS. Se seu computador não está configurado para ser usado por muitos usuários, ele aponta para a sub chave .default de HKEY_USERS.

O arquivo .reg

Um arquivo .reg é criado quando você exporta seu registro. Você pode também escrever o seu próprio arquivo .reg. Aqui, assumimos que você já tem um arquivo .reg no seu HD e queremos saber mais sobre como ele está estruturado. Não dê um duplo clique sobre o arquivo .reg ou o seu conteúdo será adicionado ao registro (é claro, uma mensagem de alerta aparecerá). Para ver as propriedades do arquivo .reg, abra-o no Notepad.

O que diferencia os arquivos .reg dos outros arquivos é a palavra "REGEDIT4". Esta é a primeira palavra em todos os arquivos .reg. Se esta palavra não aparecer, o editor de registro não reconhecerá o arquivo como um arquivo de registro.

Depois da declaração da chave, você verá uma lista de valores a serem setados em uma chave particular no registro. Os valores se parecem com este:

"nome do valor"=tipo:valor

O nome do valor está entre aspas duplas. "tipo" pode ser ausente para valores string. dword: é usado para valores double word e hex: para valores binários. Para todos os outros valores, você tem que usar o código hex(#):, onde "#' indica o código da API do tipo.

• Veja alguns exemplos de valores.

"Minha String" = "valor da string", é uma string.
"Meu dword" = dword:123456789, é um dword
"Meu binário" = hex:AA,BB,CC, é um binário padrão
"Meu outro tipo" = hex(2):AA,BB,00 é uma string expandida

String expandida tem código API igual à 2 e string extendida tem código igual à 7.

Como você pode ver, strings estão entre aspas duplas, dword é hexadecimal, e binário é uma sequência de pares de bytes hexadecimais, com uma vírgula entre cada um. Se você quer adicionar uma barra invertida dentro da string, lembre de repetí-la duas quando estiver escrevendo em um arquivo de registro, dessa forma o valor "c:\Windows" será "c:\\Windows".

--------------------------------------------------------------------------------

• Veja como criar uma entrada no registro utilizando o Delphi.

uses
Registry, Windows;

procedure TForm1.Button1Click(Sender: TObject);
var
Registry: TRegistry;
begin
{ Cria o objeto TRegistry }
Registry := TRegistry.Create;
{ seta a chave raiz; ex. hkey_local_machine }
Registry.RootKey := hkey_local_machine;
{ Abre e cria a chave }
Registry.OpenKey('software\ExemploMeuRegistro', true);
{ Escreve o valor }
Registry.WriteString('NomeDoMeuRegistro', 'Valor Do MeuRegistro');
{ Fecha e libera a chave}
Registry.CloseKey;
Registry.Free;
end;