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 valorName
deHKEY_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:
O nome da chave é
Nothing
(ArgumentNullException).O usuário não tem permissões para ler nas chaves do Registro (SecurityException).
O nome da chave excede o limite de 255 caracteres (ArgumentException).
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.