Ler em inglês

Compartilhar via


RegistryValueKind Enumeração

Definição

Especifica os tipos de dados a ser usado ao armazenar valores no Registro ou identifica o tipo de dados de um valor no Registro.

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

Campos

Nome Valor Description
Binary 3

Dados binários em qualquer formulário. Este valor é equivalente ao tipo de dados de registro da API do Windows REG_BINARY.

DWord 4

Um número binário de 32 bits. Esse valor é equivalente ao tipo de dados de registro da API do Windows REG_DWORD.

ExpandString 2

Uma cadeia de caracteres terminada em nulo que contém referências não expandidas a variáveis de ambiente, como %PATH%, que são expandidas quando o valor é recuperado. Este valor é equivalente ao tipo de dados de registro da API do Windows REG_EXPAND_SZ.

MultiString 7

Uma matriz de cadeias de caracteres terminada em nulo, terminada por dois caracteres nulos. Este valor é equivalente ao tipo de dados de registro da API do Windows REG_MULTI_SZ.

None -1

Nenhum tipo de dados.

QWord 11

Um número binário de 64 bits. Este valor é equivalente ao tipo de dados de registro da API do Windows REG_QWORD.

String 1

Uma cadeia de caracteres terminada em nulo. Este valor é equivalente ao tipo de dados de registro da API do Windows REG_QWORD.

Unknown 0

Um tipo de dados do Registro sem suporte. Por exemplo, não há suporte para o tipo de dados de registro da API do Microsoft Windows REG_RESOURCE_LIST. Use esse valor para especificar que o SetValue(String, Object) deve determinar o tipo de dados do Registro apropriado ao armazenar um par nome/valor.

Exemplos

O exemplo de código a seguir cria uma chave do Registro e define vários valores para essa chave, usando RegistryValueKind para especificar os tipos de dados do Registro. Em seguida, o exemplo usa RegistryKey.GetValueKind para marcar os tipos de dados do Registro, a fim de recuperar os valores e exibi-los.

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
*/

Comentários

A RegistryValueKind enumeração define o conjunto de tipos de dados do Registro com suporte e o valor usado para tipos sem suporte (Desconhecido). A partir do .NET Framework 4, você pode especificar para não usar um tipo de dados com o valor None.

Use o RegistryKey.GetValueKind método para determinar o tipo de dados de um valor de chave do Registro antes de recuperar o valor. Ao definir um valor de chave do Registro, use o SetValue método para especificar explicitamente o tipo de dados do Registro.

Aplica-se a

Produto Versões
.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

Confira também