Compartilhar 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 contra o registro, você também pode usar as classes Registry e RegistryKey no namespace Microsoft.Win32 do .NET.

Chaves na classe de Registro

A Registry classe 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 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 de usuário padrão.

Importante

É mais seguro gravar dados no 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 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