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 valorName
deHKEY_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:
Que el nombre de la clave sea
Nothing
(ArgumentNullException).Que el usuario tenga permisos para leer de las claves del Registro (SecurityException).
Que el nombre de la clave supere el límite de 255 caracteres (ArgumentException).
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.