Esta documentación está archivada y no tiene mantenimiento.

RegistryHive (Enumeración)

Representa los posibles valores de un nodo de nivel superior en un equipo externo.

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

[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public enum RegistryHive
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public enum RegistryHive
SerializableAttribute 
ComVisibleAttribute(true) 
public enum RegistryHive

 Nombre de miembroDescripción
ClassesRootRepresenta la clave base HKEY_CLASSES_ROOT en otro equipo. Este valor se puede pasar al método OpenRemoteBaseKey para abrir este nodo de forma remota. 
CurrentConfigRepresenta la clave base HKEY_CURRENT_CONFIG en otro equipo. Este valor se puede pasar al método OpenRemoteBaseKey para abrir este nodo de forma remota. 
CurrentUserRepresenta la clave base HKEY_CURRENT_USER en otro equipo. Este valor se puede pasar al método OpenRemoteBaseKey para abrir este nodo de forma remota. 
DynDataRepresenta la clave base HKEY_DYN_DATA en otro equipo. Este valor se puede pasar al método OpenRemoteBaseKey para abrir este nodo de forma remota. 
LocalMachineRepresenta la clave base HKEY_LOCAL_MACHINE en otro equipo. Este valor se puede pasar al método OpenRemoteBaseKey para abrir este nodo de forma remota. 
PerformanceDataRepresenta la clave base HKEY_PERFORMANCE_DATA en otro equipo. Este valor se puede pasar al método OpenRemoteBaseKey para abrir este nodo de forma remota. 
UsersRepresenta la clave base HKEY_USERS en otro equipo. Este valor se puede pasar al método OpenRemoteBaseKey para abrir este nodo de forma remota. 

El método OpenRemoteBaseKey utiliza los valores de RegistryHive para representar el nodo de nivel superior de una clave solicitada en un equipo externo (remoto). El nodo que puede abrirse con el método OpenRemoteBaseKey debe formar parte de uno de estos objetos RegistryKeys de nivel superior. Se puede obtener acceso posterior a las subclaves del nodo identificado utilizando los métodos de RegistryKey, siempre y cuando el usuario posea los permisos adecuados.

En el ejemplo de código siguiente se muestra la forma de abrir una clave del Registro en un equipo remoto y enumerar los valores de la clave. El equipo remoto debe ejecutar el servicio de Registro remoto. Se ha de especificar el nombre del equipo remoto como un argumento de la línea de comandos al llamar al programa.

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

[assembly: RegistryPermissionAttribute(SecurityAction.RequestMinimum,
    Read = @"HKEY_CURRENT_USER\Environment")]
[assembly: SecurityPermissionAttribute(SecurityAction.RequestMinimum,
    UnmanagedCode = true)]

class RemoteKey
{
    static void Main(string[] args)
    {
        RegistryKey environmentKey;
        string remoteName;

        // Check that an argument was specified when the 
        // program was invoked.
        if(args.Length == 0)
        {
            Console.WriteLine("Error: The name of the remote " +
                "computer must be specified when the program is " +
                "invoked.");
            return;
        }
        else
        {
            remoteName = args[0];
        }

        try
        {
            // Open HKEY_CURRENT_USER\Environment 
            // on a remote computer.
            environmentKey = RegistryKey.OpenRemoteBaseKey(
                RegistryHive.CurrentUser, remoteName).OpenSubKey(
                "Environment");
        }
        catch(IOException e)
        {
            Console.WriteLine("{0}: {1}", 
                e.GetType().Name, e.Message);
            return;
        }

        // Print the values.
        Console.WriteLine("\nThere are {0} values for {1}.", 
            environmentKey.ValueCount.ToString(), 
            environmentKey.Name);
        foreach(string valueName in environmentKey.GetValueNames())
        {
            Console.WriteLine("{0,-20}: {1}", valueName, 
                environmentKey.GetValue(valueName).ToString());
        }

        // Close the registry key.
        environmentKey.Close();
    }
}

import System.*;
import System.IO.*;
import System.Security.Permissions.*;
import Microsoft.Win32.*;

/** @assembly RegistryPermissionAttribute(SecurityAction.RequestMinimum, 
    Read = "HKEY_CURRENT_USER\\Environment")
 */
/** @assembly SecurityPermissionAttribute(SecurityAction.RequestMinimum, 
    UnmanagedCode = true)
 */
class RemoteKey
{
    public static void main(String[] args)
    {
        RegistryKey environmentKey;
        String remoteName;
        // Check that an argument was specified when the 
        // program was invoked.
        if (args.get_Length() == 0) {
            Console.WriteLine("Error: The name of the remote " 
                + "computer must be specified when the program is " 
                + "invoked.");
            return;
        }
        else {
            remoteName = args[0];
        }

        try {
            // Open HKEY_CURRENT_USER\Environment 
            // on a remote computer.
            environmentKey = RegistryKey.OpenRemoteBaseKey(
                RegistryHive.CurrentUser, remoteName).OpenSubKey("Environment");
        }
        catch (IOException e) {
            Console.WriteLine("{0}: {1}", e.GetType().get_Name(), 
                e.get_Message());
            return;
        }

        // Print the values.
        Console.WriteLine("\nThere are {0} values for {1}.", 
            Convert.ToString(environmentKey.get_ValueCount()), 
            environmentKey.get_Name());
        for (int iCtr = 0; iCtr < environmentKey.GetValueNames().get_Length();
            iCtr++) {
            String valueName = (String)environmentKey.GetValueNames().
                get_Item(iCtr);
            Console.WriteLine("{0,-20}: {1}", valueName, 
                environmentKey.GetValue(valueName).ToString());
        }

        // Close the registry key.
        environmentKey.Close();
    } //main
} //RemoteKey

Windows 98, Windows 2000 SP4, Windows Millennium, 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
Mostrar: