Desenvolvimento - C#

Utilizando o Registro do Windows para gravar informações com C#.Net

Nesse artigo será demonstrado como podemos utilizar o registro do Windows para gravar o caminho de um arquivo “.txt”.

por Wilker Silva de Oliveira



Quando precisamos gravar algum tipo de informações onde o banco de dados não pode ser utilizado, utilizamos outras formas, como um arquivo “.txt”, “.ini” entre outros. Podemos também, dependendo da informação que será guardada, utilizar o próprio registro do Windows. Um exemplo para essa gravação e o caminho de um banco de dados ou uma string de conexão criptografada.

Nesse artigo irei demonstrar como podemos utilizar o registro do Windows para gravar o caminho de um arquivo “.txt”. Mas você pode escolher qualquer outro tipo de arquivo.

A chave de Registro que iremos utilizar será:
HKEY_LOCAL_MACHINE\Software
Nela podemos encontrar informações de todos os programas instalados no computador.

Iniciando a construção do Programa

Estarei utilizando o Visual Studio 2005, mas você pode utilizar qualquer outro aplicativo para auxiliar no desenvolvimento.

Começaremos criando um projeto. No Visual Studio, clique em File/New/Project e escolha Windows Application. Escolha o nome para sua aplicação e o caminho que será salvo conforme Figura 1.


Criando o Projeto
Feito isso, crie então um formulário conforme imagem abaixo:


Formulário
Iremos utilizar também um outro componente, o OpenFileDialog para poder pegar o caminho do arquivo (para maiores informações sobre esse componente, acesse http://msdn2.microsoft.com/pt-br/library/system.windows.forms.openfiledialog(vs.80).aspx). Para usar esse componente no projeto, na barra Toolbox de dois clique em cima dele:


ToolBox
Agora vamos partir para a ação dos botões. De dois clique no botão Abrir e insira o código abaixo:

 /// 
 /// Abri a janela para escolher o caminho do 
 /// banco de dados
 /// 
 private void bt_abrir_Click(object sender, EventArgs e)
 {
    // coloca o título na janela
    this.openFileDialog1.Title = "Escolha o banco de dados...";
    // informa qual será o diretório inicial
    this.openFileDialog1.InitialDirectory = "c:\\";
    // configura o filtro para tipo de arquivo
    this.openFileDialog1.Filter = "txt files (*.txt)|*.txt";
    // abre a janela para escolher o banco de dados
    this.openFileDialog1.ShowDialog();

    // pega o caminho escolhido
    this.tbx_caminho.Text = this.openFileDialog1.FileName;
 }

Feito isso, você já consegue selecionar o arquivo e pegar seu caminho.

Agora vamos para a parte principal, gravar essa informação no registro do Windows.
Utilizaremos o namespace Microsoft.Win3, então acrescente ele ao programa:

using Microsoft.Win32;

De dois clique no botão Gravar Caminho e o insira o código abaixo:
try
{
   // cria uma referêcnia para a chave de registro Software
   RegistryKey rk = Registry.LocalMachine.OpenSubKey("Software",  true);
   // cria um Subchave como o nome GravaRegistro
   rk = rk.CreateSubKey("GravaRegistro");
   // grava o caminho na SubChave GravaRegistro
   rk.SetValue("CAMINHO_TXT", tbx_caminho.Text);
   // fecha a Chave de Restistro registro
   rk.Close();
   MessageBox.Show("Caminho gravado com Sucesso!");

}
catch (Exception erro)
{
   MessageBox.Show("Erro no gravação do Registro: " + erro.Message);
}

Pronto, agora já temos nosso caminho gravado do Registro do Windows.
Para verificar o caminho gravado, basta acessar o Registro do Windows com o comando regedit, e verificar que na chave de registro HKEY_LOCAL_MACHINE\Software terá uma pasta com o nome GravaRegistro e dentro dela um arquivo com o nome CAMINHO_TXT onde tera o caminho que você escolheu.

Agora precisamos realizar a leitura desse caminho gravado.
De dois clique no botão Caminho Gravado e insira o codigo abaixo:
try
{
   // cria uma referêcnia para a chave de registro Software
   RegistryKey rk = Registry.LocalMachine.OpenSubKey("Software", true);
   // realiza a leitura do registro
   tbx_caminhoGravado.Text = 
     rk.OpenSubKey("GravaRegistro", true).GetValue("CAMINHO_TXT").ToString();
}
catch (Exception erro)
{
   MessageBox.Show("Erro na leitura do Registro: " + erro.Message);
}

Finalizada então a codificação, execute o programa e realize a leitura do registro gravado.

Conclusão

Podemos ver que exitem outras formas que auxiliam nas gravações de informações, não só utilizando os arquivos .txt ou .ini. E que para utilizar o registro do Windows é muito simples, bastando algumas linhas de programação e você não irá precisar usar mais arquivos de texto para quardar informações como caminho do banco de dados. Mas utilize com cuidado, pois se alterar o registro de algum outro programa, poderá tem sérios problemas.

Referências

http://www.microsoft.com/brasil/security/guidance/topics/devsec/secmod25.mspx
http://www.infowester.com/tutregistrowin.php
http://msdn2.microsoft.com/pt-br/library/system.windows.forms.openfiledialog(vs.80).aspx).

Wilker Silva de Oliveira

Wilker Silva de Oliveira - Analista de Sistemas
Syco Tecnologia Ltda.