Partilhar via


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

Embora My.Computer.Registry deva cobrir suas necessidades básicas ao programar no Registro, você também pode usar as Registry classes e RegistryKey no Microsoft.Win32 namespace do .NET.

Chaves na classe Registry

A Registry classe fornece as chaves de registro base que podem ser usadas para acessar subchaves e seus valores. As próprias chaves base são somente leitura. A tabela a seguir lista e descreve as sete chaves expostas pela Registry classe.

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 atuais do usuário, como variáveis ambientais.
DynData Contém dados dinâmicos do Registro, como os usados pelos drivers de dispositivo virtual.
LocalMachine Contém cinco subchaves (Hardware, SAM, Segurança, Software e Sistema) que contêm os dados de configuração do computador local.
PerformanceData Contém informações de desempenho para componentes de software.
Users Contém informações sobre as preferências padrão do usuário.

Importante

É mais seguro gravar dados no usuário atual (CurrentUser) do que no computador local (LocalMachine). Uma condição que normalmente é chamada de "agachamento" ocorre quando a chave que você está criando foi criada anteriormente por outro processo, possivelmente malicioso. Para evitar que isso ocorra, use um método, como GetValue, que retorna 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

Consulte também