Este tema aún no ha recibido ninguna valoración - Valorar este tema

RegistryKey (Clase)

Representa un nodo de nivel de clave en el Registro de Windows. Esta clase es una encapsulación del Registro.

Espacio de nombres: Microsoft.Win32
Ensamblado: mscorlib (en mscorlib.dll)

[ComVisibleAttribute(true)] 
public sealed class RegistryKey : MarshalByRefObject, IDisposable
/** @attribute ComVisibleAttribute(true) */ 
public final class RegistryKey extends MarshalByRefObject implements IDisposable
ComVisibleAttribute(true) 
public final class RegistryKey extends MarshalByRefObject implements IDisposable

Para obtener una instancia de RegistryKey, utilice uno de los miembros estáticos de la clase Registry.

El Registro se comporta como un repositorio central de información del sistema operativo y de las aplicaciones de un equipo. El Registro está organizado jerárquicamente, y se basa en un orden lógico de los elementos almacenados en el mismo (para obtener información sobre los elementos de nivel base de esta jerarquía, vea Registry). Cuando almacene información en el Registro, seleccione la ubicación adecuada al tipo de información que vaya a almacenar. Asegúrese de no destruir información creada por otras aplicaciones, ya que esto puede hacer que se comporten de manera inesperada, e incluso producir efectos no deseados en su propia aplicación.

Las claves del Registro constituyen la unidad base de organización del Registro, y pueden compararse con las carpetas del Explorador de Windows. Así como una carpeta puede tener subcarpetas, una clave determinada puede tener subclaves. Una clave se puede eliminar siempre y cuando el usuario tenga los permisos adecuados y la clave no sea una clave base o se encuentre justo en el nivel inferior de las claves base. Una clave también puede tener varios valores asociados (un valor se puede comparar con un archivo), que se utilizan para almacenar información, por ejemplo, sobre una aplicación instalada en el equipo. Cada valor contiene una parte de información concreta, que se puede recuperar o actualizar cuando es necesario. Por ejemplo, puede crear un objeto RegistryKey para su compañía bajo la clave HKEY_LOCAL_MACHINE\Software y, a continuación, una subclave para cada aplicación que cree la compañía. Cada subclave contiene información específica de esa aplicación, como la configuración del color, la ubicación y el tamaño de la pantalla, o las extensiones de archivo reconocidas.

Tenga en cuenta que la información que se almacena en el Registro está disponible para otras aplicaciones y usuarios, por lo que no debería utilizarse para almacenar datos de seguridad o información crítica para la aplicación.

Nota de precauciónPrecaución

No exponga los objetos RegistryKey de modo que un programa dañino pueda crear miles de subclaves o pares de clave y valor sin significado. Por ejemplo, no permita que los llamadores especifiquen claves o valores arbitrarios.

Nota de la plataforma Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows CE: En las aplicaciones de .NET Compact Framework, antes de eliminar una subclave, se deben cerrar explícitamente todas las instancias abiertas de la subclave y de las subclaves secundarias. La profundidad máxima de las subclaves, según determina Windows CE, es 15.

En el ejemplo de código siguiente se muestra cómo crear una subclave bajo HKEY_CURRENT_USER, manipular su contenido y, a continuación, eliminarla.

using System;
using System.Security.Permissions;
using Microsoft.Win32;

[assembly: RegistryPermissionAttribute(SecurityAction.RequestMinimum,
    ViewAndModify = "HKEY_CURRENT_USER")]

class RegKey
{
    static void Main()
    {
        // Create a subkey named Test9999 under HKEY_CURRENT_USER.
        RegistryKey test9999 = 
            Registry.CurrentUser.CreateSubKey("Test9999");
        // Create two subkeys under HKEY_CURRENT_USER\Test9999. The
        // keys are disposed when execution exits the using statement.
        using(RegistryKey 
            testName = test9999.CreateSubKey("TestName"),
            testSettings = test9999.CreateSubKey("TestSettings"))
        {
            // Create data for the TestSettings subkey.
            testSettings.SetValue("Language", "French");
            testSettings.SetValue("Level", "Intermediate");
            testSettings.SetValue("ID", 123);
        }

        // Print the information from the Test9999 subkey.
        Console.WriteLine("There are {0} subkeys under {1}.", 
            test9999.SubKeyCount.ToString(), test9999.Name);
        foreach(string subKeyName in test9999.GetSubKeyNames())
        {
            using(RegistryKey 
                tempKey = test9999.OpenSubKey(subKeyName))
            {
                Console.WriteLine("\nThere are {0} values for {1}.", 
                    tempKey.ValueCount.ToString(), tempKey.Name);
                foreach(string valueName in tempKey.GetValueNames())
                {
                    Console.WriteLine("{0,-8}: {1}", valueName, 
                        tempKey.GetValue(valueName).ToString());
                }
            }
        }

        using(RegistryKey 
            testSettings = test9999.OpenSubKey("TestSettings", true))
        {
            // Delete the ID value.
            testSettings.DeleteValue("id");

            // Verify the deletion.
            Console.WriteLine((string)testSettings.GetValue(
                "id", "ID not found."));
        }

        // Delete or close the new subkey.
        Console.Write("\nDelete newly created registry key? (Y/N) ");
        if(Char.ToUpper(Convert.ToChar(Console.Read())) == 'Y')
        {
            Registry.CurrentUser.DeleteSubKeyTree("Test9999");
            Console.WriteLine("\nRegistry key {0} deleted.", 
                test9999.Name);
        }
        else
        {
            Console.WriteLine("\nRegistry key {0} closed.", 
                test9999.ToString());
            test9999.Close();
        }
    }
}

System.Object
   System.MarshalByRefObject
    Microsoft.Win32.RegistryKey
Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar