Home » Artigos arquivados » 1998 – Editando o Registro

1998 – Editando o Registro

Autor: Laércio Vasconcelos
Dezembro/1998

Apesar das explicações serem feitas sob o Windows 98, este artigo traz informações úteis que são válidas também nas versões mais novas do Windows, como 2000, XP e Vista. Editar o registro é uma habilidade útil na solução de muitos problemas.

O Registro e seu editor

O Windows 3.x armazena informações relativas às suas configurações em dois arquivos: WIN.INI e SYSTEM.INI. Seus programas utilizam, além desses arquivos, vários outros arquivos próprios, todos com a extensão INI. Em geral, o usuário não precisa fazer modificações nesses arquivos. O Painel de Controle e comandos de configuração existentes em todos os programas fazem as alterações necessárias nesses arquivos, e a maioria dos usuários não precisa nem mesmo saber de sua existência.

No Windows 95, os arquivos WIN.INI, SYSTEM.INI e demais arquivos INI criados e mantidos por programas individuais, são mantidos por questões de compatibilidade. Desta forma, programas para Windows 3.x podem ser usados no Windows 95. Entretanto, o Windows 95 utiliza um outro processo mais eficiente para armazenar informações de configuração: o Registro (em inglês, Registry). Tanto o Windows 95 como os programas escritos especificamente para ele, guardarão todas as suas informações de configuração no Registro, que é composto de dois arquivos localizados no diretório C:\WINDOWS: SYSTEM.DAT e USER.DAT.

O Registro é um método muito mais eficiente para armazenar informações de configuração. Enquanto utiliza apenas dois arquivos, no Windows 3.x eram usados muitos arquivos INI, o que dificultava muito a sua localização e alteração.

Também no caso do Windows 95, o usuário não precisa visualizar nem alterar o Registro. O programa REGEDIT.EXE, usado para editar os arquivos SYSTEM.DAT e USER.DAT, nem mesmo aparece nos menus a partir do botão Iniciar. Para usá-lo, temos que clicar sobre o botão Iniciar e escolher o comando Executar, digitando REGEDIT.

Mesmo as alterações sobre os arquivos SYSTEM.DAT e USER.DAT podem ser feitas por outros processos. O Painel de Controle aceita modificações feitas pelo usuário, modificações estas que são incorporadas ao Registro, sem que o usuário precise usar o REGEDIT. Mesmo não sendo necessário usar o REGEDIT, vamos encontrar em muitas publicações especializadas no Windows 95, dicas de configurações que podem ser feitas através de alterações no Registro. Por exemplo, digamos que você deseje que a Área de Trabalho do Windows 95 tenha sempre o mesmo aspecto, independentemente das alterações feitas na sessão anterior. Por default, quando abrimos pastas ou modificamos o tamanho e a localização das janelas na Área de Trabalho, o Windows 95 mantém a configuração, mesmo que tenhamos deixado uma “bagunça”. Através de uma pequena alteração no Registro, podemos impedir que as alterações sejam efetivadas. Esta é apenas uma das configurações “do fundo do baú” que podem ser feitas através do Registro.

Fazendo um backup do Registro

Os arquivos SYSTEM.DAT e USER.DAT ficam localizados no diretório \WINDOWS. São arquivos que possuem ligados os atributos Sistema, Apenas Leitura e Escondido. Sempre que o Windows 95 consegue dar partida sem erros, faz cópias desses dois arquivos, com os nomes SYSTEM.DA0 e USER.DA0, respectivamente. Desta forma, se alguma modificação resultar em problemas que impeçam a execução perfeita de um novo boot, o usuário pode, manualmente, recuperar o estado anterior a partir desses arquivos. Mesmo com este backup realizado pelo Windows, é recomendável que seja feita uma outra cópia de segurança. Através do Windows 95, esses dois arquivos podem ser copiados da mesma forma como são copiados outros tipos de arquivos. Por exemplo, podemos marcá-los no diretório \WINDOWS e usar o comando Editar/Copiar, para depois selecionar o diretório para onde será feita a cópia e usar o comando Editar/Colar. Vemos esta operação na figura 1.

ART16-01

Figura 1 – Fazendo uma cópia do registro.

Podemos automatizar este processo criando um arquivo de batch para ser executado no Prompt do MS-DOS. Chamemos este arquivo de COPYREG.BAT:

C:
CD\WINDOWS
ATTRIB -R -S -H SYSTEM.DAT
ATTRIB -R -S -H USER.DAT
COPY SYSTEM.DAT C:\BACKREG
COPY USER.DAT C:\BACKREG
ATTRIB +R +S +H SYSTEM.DAT
ATTRIB +R +S +H USER.DAT

Este pequeno arquivo de batch copia os arquivos do Registro para o diretório C:\COPYREG (obviamente, você precisa antes criar manualmente este diretório). O uso do comando ATTRIB antes da cópia serve para desligar todos os seus atributos (Somente Leitura, Sistema e Escondido), caso contrário, o comando COPY não funciona. Depois da cópia, o comando ATTRIB é novamente usado para ligar os atributos originais.

Uma vez que o Registro esteja a salvo, podemos executar o REGEDIT. Muito cuidado, pois modificações indevidas no Registro podem fazer com que o computador apresente problemas, podendo até mesmo ser inviabilizada a partida do Windows. Caso isto ocorra, você deve restabelecer os arquivos originais do Registro, a partir das cópias realizadas. Execute um boot com a opção Somente Prompt do Modo de Segurança, e use os seguintes comandos, com os quais você pode formar um arquivo de nome RESTREG.BAT:

C:
CD\WINDOWS
ATTRIB -R -S -H SYSTEM.DAT
ATTRIB -R -S -H USER.DAT
COPY C:\BACKREG\SYSTEM.DAT
COPY C:\BACKREG\USER.DAT
ATTRIB +R +S +H SYSTEM.DAT
ATTRIB +R +S +H USER.DAT

Nesses comandos, o ATTRIB é usado para desligar os atributos dos arquivos de Registro problemáticos. Depois, são substituídos pelas suas cópias de segurança feitas anteriormente no diretório BACKREG, usando o batch COPYREG já mostrado.

Tanto é perigoso fazer modificações indevidas no Registro, que o programa REGEDIT.EXE nem mesmo faz parte dos menus do botão Iniciar. Para executá-lo, temos que usar o comando Executar, a partir do botão Iniciar da barra de tarefas. A figura 2 mostra o REGEDIT em funcionamento.

ART16-02

Figura 2 – O programa REGEDIT.

Todas as informações existentes no Registro ficam armazenadas em 5 áreas principais chamadas de “chaves”. Essas chaves ficam na parte esquerda da janela do REGEDIT. Na parte direita são mostrados os dados armazenados nessas chaves. Dentro de cada chave existem outras chaves. Podemos acessá-las da mesma forma como acessamos as pastas no Windows Explorer. Por exemplo, para abrir a chave HKEY_USERS, basta aplicar-lhe um clique duplo, e teremos algo como mostra a figura 3. Dentro de uma chave aberta, encontramos outras chaves que podem ser também abertas da mesma forma.

ART16-03

Figura 3 – Abrindo a chave HKEY_USERS.

Apesar da figura 2 mostrar várias chaves, na verdade são apenas duas: HKEY_LOCAL_MACHINE e HKEY_USERS. As demais chaves mostradas são “atalhos” para partes específicas das duas chaves principais.

As alterações no Registro consistem em alterar ou criar valores dentro das chaves. Vejamos a seguir um exemplo de alteração através do REGEDIT.

Nomes longos

Alguns usuários ficam um pouco incomodados com a forma usada para exibir nomes longos no formato 8.3, tanto nas seções do MS-DOS como nos aplicativos para Windows 3.x. Por exemplo, se criarmos um arquivo com o nome longo MICROSOFT.DOC (9 caracteres no nome), este será visualizado com o nome MICROS~1.DOC. Se for criado outro arquivo de nome longo cujos 6 primeiros caracteres sejam “MICROS”, este será chamado de MICROS~2.DOC. Entretanto, na maioria das vezes não são criados outros arquivos com nome longo e com os 6 primeiros caracteres iguais aos de um arquivo já existente. Se não existem MICROS~2.DOC, MICROS~3.DOC e outros, é muito melhor chamar o arquivo original de MICROSOF.DOC, ao invés de MICROS~1.DOC. A alteração que mostraremos aqui faz com que os arquivos de nome longo sejam convertidos para o formato 8.3, apenas tomando os 8 primeiros caracteres do seu nome (excluindo os espaços em branco). Apenas se for criado um outro arquivo de nome longo, cujos 8 primeiros caracteres sejam iguais a outro já existente, serão gerados nomes como MICROS~1. Observe que esta alteração não será válida para os arquivos já existentes, e sim, para os que forem criados depois da modificação.

A modificação consiste no seguinte: Comece abrindo a chave:

HKEY_LocalMachine\System\CurrentControlSet\Control\FileSystem

A figura 4 mostra esta chave já aberta.

ART16-04

Figura 4 – Abrindo uma chave do registro.

Crie um novo valor binário dentro desta chave, como mostra a figura 5. Devemos clicar com o botão direito do mouse sobre a janela do REGEDIT. Será apresentado um menu cujo único elemento é “Novo”, e a seguir outro menu, no qual devemos escolher a opção “Valor binário”. A seguir digitamos “NameNumericTail”. Observe que, apesar de estarmos usando letras maiúsculas e minúsculas para facilitar a leitura, não é feita distinção entre elas. Portanto, você pode digitar, por exemplo, “namenumerictail” ou “NAMENUMERICTAIL”, mas sugerimos a forma “NameNumericTail” por ser de leitura mais fácil.

ART16-05

Figura 5 – Criando um novo valor binário dentro de uma chave.

A seguir, aplicamos um clique duplo sobre o valor recém criado. Será apresentado um quadro como o da figura 6, no qual podemos digitar valores binários. Digite apenas 0 e clique em OK.

ART16-06

Figura 6 – Definindo um valor binário.

O Registro estará alterado, e para que as alterações tomem efeito, é preciso sair do editor e reinicializar o Windows 95. Entretanto, algumas alterações tomam efeito a partir do instante em que o REGEDIT é fechado, sem que seja preciso reinicializar o Windows. Na dúvida, faça a reinicialização.

ART16-07

Figura 7 – Valor binário já criado na chave.

Você poderá a seguir experimentar esta alteração. Crie, usando um aplicativo do Windows 95 (que suporte nomes longos), um documento de nome longo. Por exemplo, use o WordPad para criar um arquivo de nome Microsoft.DOC. Ao executar o Prompt do MS-DOS você pode listar o diretório onde está este arquivo, e verá que seu nome é mostrado como MICROSOF.DOC, e não como MICROS~1.DOC.

Neste exemplo, vimos entre outras coisas, como criar um valor binário dentro de uma chave. Os elementos que podem ser criados dentro de uma chave são os seguintes:

Valor de Seqüência (string). Trata-de de um conjunto de caracteres
Valor DWORD. Trata-se de um valor numérico que ocupa 32 bits
Valor binário. Trata-se de um grupo de bytes

ART16-08

Figura 8 – Editando uma string.

ART16-09

Figura 9 – Editando um valor DWORD.

Na figura 6, vimos o quadro apresentado para a edição de um valor binário. Nas figuras 8 e 9 vemos quadros usados na edição de seqüências e DWORD.