Compartilhar via


Como ler um valor a partir de uma chave do Registro no Visual Basic

O método GetValue do objeto My.Computer.Registry pode ser usado para ler valores no Registro do Windows.

Se a chave, "Software\MyApp" no exemplo a seguir, não existir, uma exceção será gerada. Se o ValueName, "Name" no exemplo a seguir, não existir, Nothing será retornado.

O método GetValue também pode ser usado para determinar se um determinado valor existe em uma chave do Registro específica.

Quando o código lê o Registro de um aplicativo Web, o usuário atual será determinado pela autenticação e a representação implementadas no aplicativo Web.

Para ler um valor de uma chave do Registro

  • Use o método GetValue (especificando o caminho e nome) para ler um valor de chave do Registro. O exemplo a seguir lê o valor Name de HKEY_CURRENT_USER\Software\MyApp e o exibe em uma caixa de mensagem.

    Dim readValue = My.Computer.Registry.GetValue(
        "HKEY_CURRENT_USER\Software\MyApp", "Name", Nothing)
    MsgBox("The value is " & readValue)
    

Este exemplo de código também está disponível como um snippet de código do IntelliSense. No seletor de snippet de código, ele está localizado em Sistema Operacional Windows > Registro. Para obter mais informações, consulte Snippets de Código.

Para determinar se um valor existe em uma chave do Registro

  • Use o método GetValue para recuperar o valor. O código a seguir verifica se o valor existe e retorna uma mensagem se ele não existir.

    If My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\TestApp",
    "TestValue", Nothing) Is Nothing Then
        MsgBox("Value does not exist.")
    End If
    

Programação robusta

O Registro contém chaves de nível superior ou raiz, que são usadas para armazenar dados. Por exemplo, a chave raiz HKEY_LOCAL_MACHINE é usada para armazenar configurações de nível do computador usadas por todos os usuários, enquanto HKEY_CURRENT_USER é usada para armazenar dados específicos a um usuário individual.

As seguintes condições podem causar uma exceção:

Segurança do .NET Framework

Para executar esse processo, seu assembly exige um nível de privilégio concedido pela classe RegistryPermission. Se você estiver executando em um contexto de confiança parcial, o processo poderá gerar uma exceção em razão dos privilégios insuficientes. Da mesma forma, o usuário deve ter as ACLs corretas para criar ou gravar nas configurações. Por exemplo, um aplicativo local que tem a permissão de segurança de acesso do código pode não ter permissão do sistema operacional. Para obter mais informações, consulte Noções Básicas da Segurança de Acesso do Código.

Observação

O CAS (Segurança de Acesso do Código) foi preterido em todas as versões do .NET Framework e do .NET. As versões recentes do .NET não aceitam anotações de CAS e produzem erros caso as APIs relacionadas ao CAS sejam usadas. Os desenvolvedores devem buscar meios alternativos de realizar tarefas de segurança.

Confira também