quinta-feira, 1 de maio de 2014

Vamos aprender neste tutorial como manipular o editor de registros do Windows.
Primeiramente precisamos saber quais são os diretórios de registros que o Windows possui.


No desenvolvimento com C# utilizando o .Net Framework, temos a classe Microsoft.Win32, que trata de funções sobre gerenciamento de hardware e alguns recursos do próprio sistema operacional. Uma dessas "funções" é a manipulação do Regedit.

Para iniciarmos, precisamos importar essa classe.
using Microsoft.Win32;

Agora temos disponíveis a classe RegistryKey que representa uma chave de registro, como o próprio nome diz. Então vamos começar.

Vamos declarar uma variável e associarmos à ela algum diretório de registro que queremos manipular.
Em C#, identificamos cada pasta pelo seguinte código:

ClassesRoot = HKEY_CLASSES_ROOT
CurrentUser  = HKEY_CURRENT_USER
LocalMachine = HKEY_LOCAL_MACHINE
Users = HKEY_USERS
CurrentConfig = HKEY_CURRENT_CONFIG

Então, nosso código fica assim:
RegistryKey registro;
registro = Registry.CurrentUser;

Agora podemos definir o que queremos fazer dentro desse registro. Para inserirmos um valor por exemplo, usamos SetValue(registro, valor_registro)
registro.SetValue("MeuRegistro", "Programador Online");

Dessa forma criamos um registro na raiz do diretório HKEY_CURRENT_USER.


Para criarmos uma pasta dentro desse diretório, usamos o método CreateSubKey logo quando definimos a nossa chave de registro.

RegistryKey registro;
registro = Registry.CurrentUser.CreateSubKey("MinhaSubKey");

Agora podemos adicionar um novo registro.
registro.SetValue("MeuRegistro", "Programador Online");


Para lermos um registro, usamos a mesma lógica só que ao invés de CreateSubKey usaremos OpenSubKey.
// declaro o registro
RegistryKey registro;
// defino a pasta CurrentUser e a subKey que desejo ler
registro = Registry.CurrentUser.OpenSubKey("MinhaSubKey");
// defino qual registro quero retornar o valor
string valor = registro.GetValue("MeuRegistro").ToString();
// escreve o valor
Console.WriteLine(valor);

Console.ReadKey();

Assim, obtemos o valor que o registro HKEY_CURRENT_USER\MinhaSubKey\MeuRegistro contém.


A classe Win32 possui muitas funcionalidades interessantes, inclusive sobre o registro. Vale a pena explorar os métodos que essa classe possui.

Abraços e até a próxima.

Categories: ,

5 comentários:

  1. Olá Boa tarde, não sei se você autor do artigo lerá a minha mensagem mas quero que saiba que sua ajuda foi muito util para a resolução de uma atividade minha. Muito obrigado!

    ResponderExcluir
  2. olá, tem como adicionar uma chave dentro de outra criada? obrigado

    ResponderExcluir
  3. Vim divulgar uma ferramenta muito boa para programadores, no HIBIRO já ganhei mais de 4 mil reais só com tarefas freelancer, vou deixar o link de uma tarefa aqui

    https://dashboard.hibiro.com/tasks/1089

    ResponderExcluir
  4. Olá, gostaria de saber se você pega serviço de programação de bloggers, eu tenho um blog com tema que gosto, mas existem algumas edições que eu gostaria de fazer na programação do blog e preciso encontrar alguém pra fazer isso, se você fizer por favor me envia msg, pelo whats ou email (64) 9 8120-4441 ou dygean@gmail.com

    ResponderExcluir