Ler en inglés

Compartir por


RegistryValueKind Enumeración

Definición

Especifica los tipos de datos que se deben utilizar para almacenar valores en el Registro, o identifica el tipo de datos de un valor contenido en el Registro.

C#
public enum RegistryValueKind
C#
[System.Runtime.InteropServices.ComVisible(true)]
public enum RegistryValueKind
Herencia
RegistryValueKind
Atributos

Campos

Nombre Valor Description
Binary 3

Datos binarios en cualquier formato. Este valor es equivalente al tipo de datos del Registro REG_BINARY de la API de Windows.

DWord 4

Un número binario de 32 bits. Este valor es equivalente al tipo de datos del Registro REG_DWORD de la API de Windows.

ExpandString 2

Una cadena terminada en nulo que contiene referencias no expandidas a variables de entorno, tales como %PATH%, que se expanden cuando se recupera el valor. Este valor es equivalente al tipo de datos del Registro REG_EXPAND_SZ de la API de Windows.

MultiString 7

Una matriz de cadenas terminadas en nulo, finalizada con dos caracteres null. Este valor es equivalente al tipo de datos del Registro REG_MULTI_SZ de la API de Windows.

None -1

Ningún tipo de datos.

QWord 11

Número binario de 64 bits. Este valor es equivalente al tipo de datos del Registro REG_QWORD de la API de Windows.

String 1

Una cadena terminada en null. Este valor es equivalente al tipo de datos del Registro REG_SZ de la API de Windows.

Unknown 0

Un tipo de datos del Registro no admitido. Por ejemplo, el tipo de datos del Registro REG_RESOURCE_LIST de la API de Windows de Microsoft no se admite. Utilice este valor para especificar que el método SetValue(String, Object) debe determinar el tipo de dato adecuado al almacenar un par de nombre y valor en el Registro.

Ejemplos

En el ejemplo de código siguiente se crea una clave del Registro y se establecen varios valores para esa clave, utilizando RegistryValueKind para especificar los tipos de datos del Registro. A continuación, en el ejemplo se usa RegistryKey.GetValueKind para comprobar los tipos de datos del Registro, con el fin de recuperar los valores y mostrarlos.

C#
using System;
using Microsoft.Win32;

class RegGetDef
{
    public static void Main()
    {
        // Create a reference to a valid key.  In order for this code to
        // work, the indicated key must have been created previously.
        // The key name is not case-sensitive.
        RegistryKey rk = Registry.LocalMachine.OpenSubKey("Software\\myTestKey", false);
        // Get the value from the specified name/value pair in the key.

        string valueName = "myTestValue";

        Console.WriteLine("Retrieving registry value ...");
        Console.WriteLine();
        object o = rk.GetValue(valueName);
        Console.WriteLine("Object Type = " + o.GetType().FullName);
        Console.WriteLine();
        switch (rk.GetValueKind(valueName))
        {
            case RegistryValueKind.String:
            case RegistryValueKind.ExpandString:
                Console.WriteLine("Value = " + o);
                break;
            case RegistryValueKind.Binary:
                foreach (byte b in (byte[])o)
                {
                    Console.Write("{0:x2} ", b);
                }
                Console.WriteLine();
                break;
            case RegistryValueKind.DWord:
                Console.WriteLine("Value = " + Convert.ToString((int)o));
                break;
            case RegistryValueKind.QWord:
                Console.WriteLine("Value = " + Convert.ToString((Int64)o));
                break;
            case RegistryValueKind.MultiString:
                foreach (string s in (string[])o)
                {
                    Console.Write("[{0:s}], ", s);
                }
                Console.WriteLine();
                break;
            default:
                Console.WriteLine("Value = (Unknown)");
                break;
        }

        // Attempt to retrieve a value that does not exist; the specified
        // default value is returned.
        string def = (string)rk.GetValue("notavalue", "The default to return");
        Console.WriteLine();
        Console.WriteLine(def);

        rk.Close();
    }
}
/*
Output:
Retrieving registry value ...

Object Type = System.String

Value = testData

The default to return
*/

Comentarios

La RegistryValueKind enumeración define el conjunto de tipos de datos del Registro admitidos y el valor que se usa para tipos no admitidos (Desconocido). A partir de .NET Framework 4, puede especificar que no use un tipo de datos con el valor None.

Use el RegistryKey.GetValueKind método para determinar el tipo de datos de un valor de clave del Registro antes de recuperar el valor. Al establecer un valor de clave del Registro, use el SetValue método para especificar explícitamente el tipo de datos del Registro.

Se aplica a

Produto Versións
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5

Consulte también