O Registro é um grande banco de dados utilizado pelo Windows para o
armazenamento de informações referentes a programas e periféricos instalados,
além de informações sobre preferências dos usuários. Ele já existia no Windows
3.x, porém era pouco utilizado pelos programadores, que preferiam a utilização
de arquivos do tipo "INI".
Para quem não sabe, arquivos INI armazenam informações de configuração de um
determinado programa. O próprio Windows utiliza basicamente dois arquivos INI
para armazenar suas configurações: Win.ini, que armazena informações sobre
programas instalados e System.ini, que armazena informações sobre periféricos
instalados (hardware). No caso do Windows 3.x, cada programa criava um arquivo
INI próprio. Por exemplo, o Word 6 criava e utilizava um arquivo chamado
Winword6.ini para armazenar suas configurações - como, por exemplo, o diretório
onde o Word ia buscar seus modelos.
A utilização de arquivos INI apresentava alguns problemas. Para começar,
quanto mais programas instalados em seu micro, mais arquivos INI eram criados no
diretório do Windows. Programas antigos em sua maioria não possuíam assistentes
para a sua desinstalação do micro. Com isso, muito usuários, para remover o
programa do micro, acabavam simplesmente apagando manualmente o diretório
ocupado pelo programa (com o comando Deltree ou similar) e seus ícones no
Windows. É claro que a maioria acabava esquecendo de apagar os arquivos INI do
programa que ficavam armazenados no diretório do Windows (aliás, esse
procedimento ainda tinha um agravante: a maioria dos programas acrescenta
arquivos DLL no diretório do Windows; simplesmente apagar o diretório do
programa não faz com que esses arquivos sejam apagados, fazendo com que arquivos
ocupem inutilmente espaço no disco rígido do micro).
Outro problema é que arquivos INI são facilmente editáveis através de
qualquer editor de texto, já que são arquivos ASCII (TXT). Uma simples mudança
mal feita pelo usuário em um arquivo INI pode fazer com que o programa deixe de
funcionar - ou mesmo o Windows inteiro, caso o usuário faça alguma besteira nos
arquivos Win.ini e System.ini.
Talvez o maior problema seja na organização. O conteúdo de arquivos INI pode
ser editado e colocado em qualquer ordem. Ao acessar um arquivo INI, o programa
terá de filtrar o arquivo e buscar exatamente a informação que procura. Isso
pode tomar algum tempo extra. O Registro, ao contrário de arquivos INI, é
totalmente organizado; quando um programa necessita buscar uma informação, ele
simplesmente sabe onde ela está armazenada: não é necessário filtrar o Registro.
Com isso, a busca por informações no Registro é muito mais rápida do que em
arquivos INI.
O papel do Registro é armazenar todas as informações que antes eram
armazenadas em arquivos INI e muito mais. No Windows , por motivos de
compatibilidade, os arquivos System.ini e Win.ini continuam existindo. Programas
antigos (por não conhecerem o Registro) ou mal escritos (preguiça do programador
em aprender como o Registro funciona) continuam criando e usando arquivos INI
armazenados no diretório do Windows ao invés de usar o Registro.
O Registro é bastante enigmático. Isso foi feito de propósito, de
modo a dificultar a sua manipulação por usuários xeretas. Ele é armazenado em um
formato próprio e que só pode ser lido e manipulado por programas específicos. O
Windows vem com um programa editor de registro, chamado Regedit. Esse programa
não possui atalho no menu Iniciar, justamente para não facilitar sua edição.
Você pode chamá-lo simplesmente executando o arquivo c:\windows\regedit.exe e,
caso queira virar um "expert" em Registro, sugerimos criar um atalho para ele ou
na Área de Trabalho ou no menu Iniciar. Ao executar o Regedit, tome o cuidado de
somente ler os dados contido no Registo e nunca alterá-los (pelo menos por
enquanto).
Fisicamente falando, o Registro está armazenado em dois arquivos: System.dat
e User.dat. Esses arquivos estão ocultos no diretório do Windows. É interessante
notar que muitas informações do Registro são dinâmicas e colhidas durante o boot
do micro (por exemplo, as configurações de dispositivos Plug and Play não são
armazenadas nos arquivos do Registro, mas sim lidas do periférico durante o
boot). Mesmo não estando armazenadas em nenhum arquivo, informações dinâmicas
ficam disponíveis no Registro, para que programas possam facilmente acessá-las
através do Registro.