Leitura e gravação ao registro usando o Namespace Microsoft. Win32 (Visual Basic)

Embora My.Computer.Registry deva cobrir suas necessidades básicas quando estiver programando contra o registro, você também pode usar as classesRegistry e RegistryKey no namespace Microsoft.Win32 do .NET Framework.

Chaves na Classe do Registro

A classe Registry fornece as chaves do registro básicas que podem ser usadas para acessar subchaves e seus valores. As chaves base são somente para 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 de usuário.

CurrentUser

Contém informações sobre as preferências do usuário atual, tais como variáveis de ambiente.

DynData

Contém dados de registro dinâmico, tais como os usados pelo Virtual Device Drivers.

LocalMachine

Contém cinco subchaves (Hardware, SAM, Security, Software, e System) que armazenam os dados de configuração para o 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.

Observação de segurançaObservação sobre segurança

É mais seguro gravar dados associados ao usuário atual (CurrentUser) do que no computador local (LocalMachine). Uma condição que é chamada geralmente como "squatting" ocorre quando a chave que você está criando tiver sido criada por outro processo previamente, possivelmente mal-intencionado. Para evitar que isso ocorra, use um método, como GetValue, que retorna Nothing se a chave já existe.

Ler um Valor do Registro

O código a seguir mostra como ler uma sequência do 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 depois grava uma sequência para 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

Tarefas

Solução de problemas: Manipulando o registro (Visual Basic)

Referência

SystemException

ApplicationException

RegistryProxy

Conceitos

Visão Geral sobre a Manipulação Estruturada de Exceções para o Visual Basic

Tarefas comuns de registro (Visual Basic)

Segurança e registro (Visual Basic)

Leitura e gravação ao registro usando o meu (Visual Basic)