Cómo: Leer un valor a partir de una clave del Registro en Visual Basic

El método GetValue del objeto My.Computer.Registry se puede usar para leer valores en el Registro de Windows.

Si la clave, "Software\MyApp" en el ejemplo siguiente, no existe, se produce una excepción. Si el ValueName, «Nombre» en el ejemplo siguiente, no existe, se devuelve Nothing.

El método GetValue también se puede usar para determinar si existe un valor determinado en una clave del Registro específica.

Cuando el código lee el registro de una aplicación web, la autenticación y la suplantación determinan el usuario actual que se implementa en la aplicación web.

Para leer un valor en una clave del Registro

  • Use el método GetValue (especificando la ruta de acceso y el nombre) para leer un valor de la clave del Registro. En el ejemplo siguiente se lee el valor Name de HKEY_CURRENT_USER\Software\MyApp y lo muestra en un cuadro de mensaje.

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

Este ejemplo de código también está disponible como fragmento de código de IntelliSense. En el selector de fragmentos de código, se encuentra en Sistema operativo Windows > Registro. Para obtener más información, vea Fragmentos de código.

Para determinar si un valor existe en una clave del Registro

  • Use el método GetValue para recuperar el valor. El siguiente código comprueba si el valor existe y devuelve un mensaje si no es así.

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

Programación sólida

El registro contiene claves de nivel superior o raíz que se usan para almacenar datos. Por ejemplo, la clave raíz HKEY_LOCAL_MACHINE se usa para almacenar una configuración de nivel de equipo que usan todos los usuarios, mientras que HKEY_CURRENT_USER se usa para almacenar datos específicos de un usuario individual.

Las condiciones siguientes pueden provocar una excepción:

Seguridad de .NET Framework

Para ejecutar este proceso, el ensamblado necesita un nivel de privilegio concedido por la clase RegistryPermission. Si ejecuta el proceso en un contexto de confianza parcial, este podría desencadenar una excepción por falta de privilegios. De igual manera, el usuario debe tener las ACL correctas para crear o escribir en la configuración. Por ejemplo, una aplicación local que tenga permiso de seguridad de acceso del código puede que no tenga permiso para el sistema operativo. Para obtener más información, vea Conceptos básicos sobre la seguridad de acceso del código.

Nota

La seguridad de acceso del código (CAS) ha quedado en desuso en todas las versiones de .NET Framework y .NET. Las versiones recientes de .NET no respetan las anotaciones de CAS y generan errores si se usan API relacionadas con CAS. Los desarrolladores deben buscar medios alternativos para realizar tareas de seguridad.

Vea también