Cómo: Crear una clave del Registro y establecer su valor en Visual Basic
El método CreateSubKey
del objeto My.Computer.Registry
se puede usar para crear una clave del Registro.
Procedimiento
Para crear una clave del Registro
Use el método
CreateSubKey
, especificando en qué subárbol se va a colocar la clave, así como el nombre de la clave. El parámetroSubkey
no distingue entre mayúsculas y minúsculas. En este ejemplo se crea la clave del RegistroMyTestKey
en HKEY_CURRENT_USER.My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
Para crear una clave del Registro y establecer un valor en él
Use el método
CreateSubkey
, especificando en qué subárbol se va a colocar la clave, así como el nombre de la clave. En este ejemplo se crea la clave del RegistroMyTestKey
en HKEY_CURRENT_USER.My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
Establezca el valor con el método
SetValue
. Este ejemplo establece el valor de la cadena. "MyTestKeyValue" en "This is a test value".My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey", "MyTestKeyValue", "This is a test value.")
Ejemplo
En este ejemplo se crea la clave del Registro MyTestKey
en HKEY_CURRENT_USER y, después, establece el valor de la cadena MyTestKeyValue
en This is a test value
.
My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
' Change MyTestKeyValue to This is a test value.
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey",
"MyTestKeyValue", "This is a test value.")
Programación sólida
Examine la estructura del Registro para buscar una ubicación adecuada para la clave. Por ejemplo, puede que quiera abrir la clave HKEY_CURRENT_USER\Software del usuario actual y crear una clave con el nombre de su empresa. Luego agregue los valores del Registro a la clave de la empresa.
Cuando se esté leyendo el Registro desde una aplicación Web, el usuario actual dependerá de la autenticación y suplantación implementadas en la aplicación Web.
Es más seguro escribir datos en la carpeta de usuario (CurrentUser) que en el equipo local (LocalMachine).
Cuando se crea un valor del Registro, se debe decidir qué hacer si ese valor ya existe. Puede que otro proceso, quizás uno malintencionado, ya haya creado el valor y tenga acceso a él. Al colocar datos en el valor del Registro, estos están a disposición del otro proceso. Para evitar esto, use el método GetValue. Devuelve Nothing
si la clave ya no existe.
Aunque la clave del Registro esté protegida por listas de control de acceso (ACL), no es seguro almacenar en ella datos secretos (por ejemplo, contraseñas) como texto sin formato.
Las condiciones siguientes pueden provocar una excepción:
Que el nombre de la clave sea
Nothing
(ArgumentNullException).Que el usuario no tenga permisos para crear claves del Registro (SecurityException).
Que el nombre de la clave supere el límite de 255 caracteres (ArgumentException).
Que la clave esté cerrada (IOException).
Que la clave del Registro sea de solo lectura (UnauthorizedAccessException).
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.