Compartilhar via


Lendo e gravando no Registro usando o namespace Microsoft.Win32 (Visual Basic)

My.Computer.Registry deve suprir suas necessidades básicas ao programar no registro, mas você também pode usar as classes Registry e RegistryKey do namespace Microsoft.Win32 do .NET.

Chaves na classe de Registro

A classe Registry fornece as chaves base do Registro que podem ser usadas para acessar subchaves e seus valores. As chaves base em si são somente leitura. A tabela a seguir lista e descreve as sete chaves expostas pela classe Registry.

Chave Descrição
ClassesRoot Define os tipos de documentos e as propriedades associadas a esses tipos.
CurrentConfig Contém informações de configuração de hardware que não são específicas do usuário.
CurrentUser Contém informações sobre as preferências do usuário atual, como variáveis ambientais.
DynData Contém dados do registro dinâmico, como aqueles usados por Drivers de dispositivo virtual.
LocalMachine Contém cinco subchaves (Hardware, SAM, Segurança, Software e Sistema) que armazenam os dados de configuração do computador local.
PerformanceData Contém informações de desempenho de componentes de software.
Users Contém informações sobre as preferências do usuário padrão.

Importante

É mais seguro gravar dados na pasta do usuário atual (CurrentUser) do que no computador local (LocalMachine). Uma condição que costuma ser chamada de "squatting" ocorre quando a chave que você está criando foi criada anteriormente por outro processo, possivelmente mal-intencionado. Para evitar que isso ocorra, use um método, como GetValue, que retornará Nothing se a chave ainda não existir.

Lendo um valor do Registro

O código a seguir mostra como ler uma cadeia de caracteres de HKEY_CURRENT_USER.

Dim regVersion As Microsoft.Win32.RegistryKey
Dim keyValue = "Software\\Microsoft\\TestApp\\1.0"
regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(keyValue, False)
Dim intVersion As Integer = 0
If regVersion IsNot Nothing Then
    intVersion = regVersion.GetValue("Version", 0)
    regVersion.Close()
End If

O código a seguir lê, incrementa e grava uma cadeia de caracteres em HKEY_CURRENT_USER.

Dim regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(
                  "SOFTWARE\\Microsoft\\TestApp\\1.0", True)
If regVersion Is Nothing Then
    ' Key doesn't exist; create it.
    regVersion = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(
                 "SOFTWARE\\Microsoft\\TestApp\\1.0")
End If

Dim intVersion As Integer = 0
If regVersion IsNot Nothing Then
    intVersion = regVersion.GetValue("Version", 0)
    intVersion = intVersion + 1
    regVersion.SetValue("Version", intVersion)
    regVersion.Close()
End If

Confira também