Partilhar via


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

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

Chaves na Classe de Registo

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 situação que tipicamente se refere como "apropriação indevida" ocorre quando a chave que está a criar já tinha sido criada 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

Ver também