Como: Ler um valor de uma chave do Registro no Visual Basic
O GetValue
método do My.Computer.Registry
objeto 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á lançada. Se o ValueName
, "Nome" no exemplo a seguir, não existir, Nothing
será retornado.
O GetValue
método 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 é determinado pela autenticação e representação que é implementada no aplicativo Web.
Para ler um valor de uma chave do Registro
Use o
GetValue
método, especificando o caminho e o nome) para ler um valor da chave do Registro. O exemplo a seguir lê o valorName
e o exibe em uma caixa deHKEY_CURRENT_USER\Software\MyApp
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 trecho de código IntelliSense. No seletor de trechos de código, ele está localizado no Registro do Sistema > Operacional Windows. Para obter mais informações, consulte Trechos de código.
Para determinar se existe um valor em uma chave do Registro
Use o
GetValue
método para recuperar o valor. O código a seguir verifica se o valor existe e retorna uma mensagem se 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 no nível da máquina usadas por todos os usuários, enquanto HKEY_CURRENT_USER é usada para armazenar dados específicos de 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 a partir de 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 requer um nível de privilégio concedido pela RegistryPermission classe. Se você estiver executando em um contexto de confiança parcial, o processo pode lançar uma exceção devido a 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 tenha a permissão de segurança de acesso ao código pode não ter permissão do sistema operacional. Para obter mais informações, consulte Noções básicas de segurança de acesso ao código.
Nota
O CAS (Code Access Security) foi preterido em todas as versões do .NET Framework e do .NET. As versões recentes do .NET não respeitam as anotações do CAS e produzem erros se as APIs relacionadas ao CAS forem usadas. Os desenvolvedores devem procurar meios alternativos de realizar tarefas de segurança.