英語で読む

次の方法で共有


RegistryValueKind 列挙型

定義

レジストリに値を格納するときに使用するデータ型を指定するか、レジストリ内の値のデータ型を識別します。

C#
public enum RegistryValueKind
C#
[System.Runtime.InteropServices.ComVisible(true)]
public enum RegistryValueKind
継承
RegistryValueKind
属性

フィールド

名前 説明
Binary 3

任意の形式のバイナリ データ。 この値は、Windows API の REG_BINARY レジストリ データ型に相当します。

DWord 4

32 ビットのバイナリ数値。 この値は、Windows API の REG_DWORD レジストリ データ型に相当します。

ExpandString 2

値を取得するときに展開される環境変数 (%PATH% など) への、展開されていない参照が含まれている null で終わる文字列。 この値は、Windows API の REG_EXPAND_SZ レジストリ データ型に相当します。

MultiString 7

null で終わる文字列の配列。配列は、2 つの null 文字で終わります。 この値は、Windows API の REG_MULTI_SZ レジストリ データ型に相当します。

None -1

データ型はありません。

QWord 11

64 ビットのバイナリ数値。 この値は、Windows API の REG_QWORD レジストリ データ型に相当します。

String 1

null で終わる文字列。 この値は、Windows API の REG_SZ レジストリ データ型に相当します。

Unknown 0

サポートされていないレジストリ データ型。 たとえば、Microsoft Windows API の REG_RESOURCE_LIST レジストリ データ型はサポートされていません。 この値を使用して、名前と値のペアを格納するときに、SetValue(String, Object) メソッドで適切なレジストリ データ型を決定する必要があることを指定します。

次のコード例では、 を使用して RegistryValueKind レジストリ データ型を指定し、レジストリ キーを作成し、そのキーに複数の値を設定します。 次に、 を使用RegistryKey.GetValueKindしてレジストリ データ型をチェックし、値を取得して表示します。

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

注釈

列挙は RegistryValueKind 、サポートされているレジストリ データ型のセットと、サポートされていない型 (不明) に使用される値を定義します。 .NET Framework 4 以降では、None 値を持つデータ型を使用しないように指定できます。

値を RegistryKey.GetValueKind 取得する前に、 メソッドを使用してレジストリ キー値のデータ型を確認します。 レジストリ キーの値を設定するときは、 メソッドを SetValue 使用してレジストリ データ型を明示的に指定します。

適用対象

製品 バージョン
.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

こちらもご覧ください