英語で読む

次の方法で共有


RegistryKey.CreateSubKey メソッド

定義

新しいサブキーを作成するか、既存のサブキーを開きます。

オーバーロード

CreateSubKey(String)

新しいサブキーを作成するか、書き込みアクセス用の既存のサブキーを開きます。

CreateSubKey(String, RegistryKeyPermissionCheck)

指定したアクセス許可チェック オプションを使用して、新しいサブキーを作成するか、書き込みアクセス用の既存のサブキーを開きます。

CreateSubKey(String, Boolean)

新しいサブキーを作成するか、指定したアクセス権を持つ既存のサブキーを開きます。 .NET Framework 4.6 以降で使用できます。

CreateSubKey(String, RegistryKeyPermissionCheck, RegistrySecurity)

指定したアクセス許可チェック オプションとレジストリ セキュリティを使用して、新しいサブキーを作成するか、書き込みアクセス用の既存のサブキーを開きます。

CreateSubKey(String, Boolean, RegistryOptions)

新しいサブキーを作成するか、指定したアクセス権を持つ既存のサブキーを開きます。 .NET Framework 4.6 以降で使用できます。

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions)

指定したアクセス許可チェックとレジストリ オプションを使用して、サブキーを作成するか、書き込みアクセス用のサブキーを開きます。

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions, RegistrySecurity)

指定したアクセス許可チェック オプション、レジストリ オプション、レジストリ セキュリティを使用して、サブキーを作成するか、書き込みアクセス用のサブキーを開きます。

CreateSubKey(String)

ソース:
RegistryKey.cs

新しいサブキーを作成するか、書き込みアクセス用の既存のサブキーを開きます。

C#
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey);

パラメーター

subkey
String

作成または開くサブキーの名前またはパス。 この文字列では大文字と小文字は区別されません。

戻り値

新しく作成されたサブキー。操作が失敗した場合は nullsubkeyに長さ 0 の文字列を指定すると、現在の RegistryKey オブジェクトが返されます。

例外

subkeynullです。

ユーザーには、レジストリ キーを作成または開くために必要なアクセス許可がありません。

このメソッドが呼び出されている RegistryKey は閉じられています (閉じたキーにはアクセスできません)。

RegistryKey に書き込むことができません。たとえば、書き込み可能なキーとして開かれていたり、ユーザーに必要なアクセス権がありません。

入れ子レベルが 510 を超えています。

-又は-

キーの削除や、LocalMachine ルートでのキーの作成試行など、システム エラーが発生しました。

次のコード例は、HKEY_CURRENT_USERの下にサブキーを作成し、その内容を操作して、サブキーを削除する方法を示しています。

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

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();
        }
    }
}

注釈

このアクションを実行するには、ユーザーはレジストリ階層のこのレベル以下のアクセス許可を持っている必要があります。

注意事項

悪意のあるプログラムが何千もの無意味なサブキーやキー/値ペアを作成するような方法で、RegistryKey オブジェクトを公開しないでください。 たとえば、呼び出し元が任意のキーまたは値を入力できないようにします。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 1.1, 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
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

CreateSubKey(String, RegistryKeyPermissionCheck)

ソース:
RegistryKey.cs

指定したアクセス許可チェック オプションを使用して、新しいサブキーを作成するか、書き込みアクセス用の既存のサブキーを開きます。

C#
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck);
C#
[System.Runtime.InteropServices.ComVisible(false)]
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck);

パラメーター

subkey
String

作成または開くサブキーの名前またはパス。 この文字列では大文字と小文字は区別されません。

permissionCheck
RegistryKeyPermissionCheck

キーを読み取りアクセスまたは読み取り/書き込みアクセス用に開くかどうかを指定する列挙値の 1 つ。

戻り値

新しく作成されたサブキー。操作が失敗した場合は nullsubkeyに長さ 0 の文字列を指定すると、現在の RegistryKey オブジェクトが返されます。

属性

例外

subkeynullです。

ユーザーには、レジストリ キーを作成または開くために必要なアクセス許可がありません。

permissionCheck に無効な値が含まれています。

このメソッドが呼び出されている RegistryKey は閉じられています (閉じたキーにはアクセスできません)。

RegistryKey に書き込むことができません。たとえば、書き込み可能なキーとして開かれていたり、ユーザーが必要なアクセス権を持っていない場合などです。

入れ子レベルが 510 を超えています。

-又は-

キーの削除や、LocalMachine ルートでのキーの作成試行など、システム エラーが発生しました。

注釈

このアクションを実行するには、ユーザーはレジストリ階層のこのレベル以下のアクセス許可を持っている必要があります。

注意事項

悪意のあるプログラムが何千もの無意味なサブキーやキー/値ペアを作成するような方法で、RegistryKey オブジェクトを公開しないでください。 たとえば、呼び出し元が任意のキーまたは値を入力できないようにします。

OpenSubKey メソッドを使用するには、RegistryKey クラスのインスタンスが必要です。 RegistryKeyのインスタンスを取得するには、Registry クラスのいずれかの静的メンバーを使用します。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 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
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

CreateSubKey(String, Boolean)

ソース:
RegistryKey.cs

新しいサブキーを作成するか、指定したアクセス権を持つ既存のサブキーを開きます。 .NET Framework 4.6 以降で使用できます。

C#
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, bool writable);
C#
[System.Runtime.InteropServices.ComVisible(false)]
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, bool writable);

パラメーター

subkey
String

作成または開くサブキーの名前またはパス。 この文字列では大文字と小文字は区別されません。

writable
Boolean

新しいサブキーが書き込み可能であることを示す true。それ以外の場合は、falseします。

戻り値

新しく作成されたサブキー。操作が失敗した場合は nullsubkeyに長さ 0 の文字列を指定すると、現在の RegistryKey オブジェクトが返されます。

属性

例外

subkeynullです。

ユーザーには、レジストリ キーを作成または開くために必要なアクセス許可がありません。

現在の RegistryKey に書き込むことができません。たとえば、書き込み可能なキーとして開かれていたり、ユーザーが必要なアクセス権を持っていない場合などです。

入れ子レベルが 510 を超えています。

-又は-

キーの削除や、LocalMachine ルートでのキーの作成試行など、システム エラーが発生しました。

注釈

このアクションを実行するには、ユーザーはレジストリ階層のこのレベル以下のアクセス許可を持っている必要があります。

注意事項

悪意のあるプログラムが何千もの無意味なサブキーやキー/値ペアを作成するような方法で、RegistryKey オブジェクトを公開しないでください。 たとえば、呼び出し元が任意のキーまたは値を入力できないようにします。

CreateSubKey メソッドを使用するには、RegistryKey クラスのインスタンスが必要です。 RegistryKeyのインスタンスを取得するには、Registry クラスのいずれかの静的メンバーを使用します。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

CreateSubKey(String, RegistryKeyPermissionCheck, RegistrySecurity)

ソース:
RegistryKey.cs

指定したアクセス許可チェック オプションとレジストリ セキュリティを使用して、新しいサブキーを作成するか、書き込みアクセス用の既存のサブキーを開きます。

C#
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, System.Security.AccessControl.RegistrySecurity? registrySecurity);
C#
[System.Runtime.InteropServices.ComVisible(false)]
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, System.Security.AccessControl.RegistrySecurity registrySecurity);
C#
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, System.Security.AccessControl.RegistrySecurity registrySecurity);

パラメーター

subkey
String

作成または開くサブキーの名前またはパス。 この文字列では大文字と小文字は区別されません。

permissionCheck
RegistryKeyPermissionCheck

キーを読み取りアクセスまたは読み取り/書き込みアクセス用に開くかどうかを指定する列挙値の 1 つ。

registrySecurity
RegistrySecurity

新しいキーのアクセス制御セキュリティ。

戻り値

新しく作成されたサブキー。操作が失敗した場合は nullsubkeyに長さ 0 の文字列を指定すると、現在の RegistryKey オブジェクトが返されます。

属性

例外

subkeynullです。

ユーザーには、レジストリ キーを作成または開くために必要なアクセス許可がありません。

permissionCheck に無効な値が含まれています。

このメソッドが呼び出されている RegistryKey は閉じられています (閉じたキーにはアクセスできません)。

現在の RegistryKey に書き込むことができません。たとえば、書き込み可能なキーとして開かれていたり、ユーザーが必要なアクセス権を持っていない場合などです。

入れ子レベルが 510 を超えています。

-又は-

キーの削除や、LocalMachine ルートでのキーの作成試行など、システム エラーが発生しました。

注釈

CreateSubKey メソッドは、registrySecurity パラメーターで指定されたアクセス制御を持つレジストリ キーを作成します。 返される RegistryKey オブジェクトはレジストリ キーを表しますが、そのオブジェクトは、registrySecurity パラメーターで指定されたアクセス制御によって制限されません。

permissionCheckRegistryKeyPermissionCheck.ReadWriteSubTreeされている場合、キーは読み取り/書き込みアクセス用に開かれます。 permissionCheckRegistryKeyPermissionCheck.ReadSubTreeされている場合、キーは読み取りアクセス用に開かれます。

下位互換性のために、permissionCheckRegistryKeyPermissionCheck.Default され、親キーにも RegistryKeyPermissionCheck.Defaultがある場合、キーは読み取りと書き込みのために開かれます。 親キーに他の設定がある場合、読み取り/書き込み状態は親キーの設定によって制御されます。

このアクションを実行するには、ユーザーはレジストリ階層のこのレベル以下のアクセス許可を持っている必要があります。

注意事項

悪意のあるプログラムが何千もの無意味なサブキーやキー/値ペアを作成するような方法で、RegistryKey オブジェクトを公開しないでください。 たとえば、呼び出し元が任意のキーまたは値を入力できないようにします。

OpenSubKey メソッドを使用するには、RegistryKey クラスのインスタンスが必要です。 RegistryKeyのインスタンスを取得するには、Registry クラスのいずれかの静的メンバーを使用します。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 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
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

CreateSubKey(String, Boolean, RegistryOptions)

ソース:
RegistryKey.cs

新しいサブキーを作成するか、指定したアクセス権を持つ既存のサブキーを開きます。 .NET Framework 4.6 以降で使用できます。

C#
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, bool writable, Microsoft.Win32.RegistryOptions options);
C#
[System.Runtime.InteropServices.ComVisible(false)]
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, bool writable, Microsoft.Win32.RegistryOptions options);

パラメーター

subkey
String

作成または開くサブキーの名前またはパス。 この文字列では大文字と小文字は区別されません。

writable
Boolean

新しいサブキーが書き込み可能であることを示す true。それ以外の場合は、falseします。

options
RegistryOptions

使用するレジストリ オプション。

戻り値

新しく作成されたサブキー。操作が失敗した場合は nullsubkeyに長さ 0 の文字列を指定すると、現在の RegistryKey オブジェクトが返されます。

属性

例外

subkeynullです。

options は有効なオプションを指定しません。

ユーザーには、レジストリ キーを作成または開くために必要なアクセス許可がありません。

現在の RegistryKey に書き込むことができません。たとえば、書き込み可能なキーとして開かれていたり、ユーザーが必要なアクセス権を持っていない場合などです。

入れ子レベルが 510 を超えています。

-又は-

キーの削除や、LocalMachine ルートでのキーの作成試行など、システム エラーが発生しました。

注釈

このアクションを実行するには、ユーザーはレジストリ階層のこのレベル以下のアクセス許可を持っている必要があります。

注意事項

悪意のあるプログラムが何千もの無意味なサブキーやキー/値ペアを作成するような方法で、RegistryKey オブジェクトを公開しないでください。 たとえば、呼び出し元が任意のキーまたは値を入力できないようにします。

CreateSubKey メソッドを使用するには、RegistryKey クラスのインスタンスが必要です。 RegistryKeyのインスタンスを取得するには、Registry クラスのいずれかの静的メンバーを使用します。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions)

ソース:
RegistryKey.cs

指定したアクセス許可チェックとレジストリ オプションを使用して、サブキーを作成するか、書き込みアクセス用のサブキーを開きます。

C#
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, Microsoft.Win32.RegistryOptions registryOptions);
C#
[System.Runtime.InteropServices.ComVisible(false)]
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, Microsoft.Win32.RegistryOptions options);

パラメーター

subkey
String

作成または開くサブキーの名前またはパス。

permissionCheck
RegistryKeyPermissionCheck

キーを読み取りアクセスまたは読み取り/書き込みアクセス用に開くかどうかを指定する列挙値の 1 つ。

registryOptionsoptions
RegistryOptions

使用するレジストリ オプション。たとえば、揮発性キーを作成します。

戻り値

新しく作成されたサブキー。操作が失敗した場合は null

属性

例外

subkeynullです。

現在の RegistryKey オブジェクトが閉じられています (閉じたキーにはアクセスできません)。

現在の RegistryKey オブジェクトに書き込むことができません。たとえば、書き込み可能なキーとして開かれていたり、ユーザーが必要なアクセス権を持っていない場合などです。

入れ子レベルが 510 を超えています。

-又は-

キーの削除や、LocalMachine ルートでのキーの作成の試行など、システム エラーが発生しました。

ユーザーには、レジストリ キーを作成または開くために必要なアクセス許可がありません。

注釈

現在の RegistryKey オブジェクトを取得するには、subkeyに空の文字列 ("") を指定します。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 6, 7, 8, 9
.NET Framework 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
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions, RegistrySecurity)

ソース:
RegistryKey.cs

指定したアクセス許可チェック オプション、レジストリ オプション、レジストリ セキュリティを使用して、サブキーを作成するか、書き込みアクセス用のサブキーを開きます。

C#
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, Microsoft.Win32.RegistryOptions registryOptions, System.Security.AccessControl.RegistrySecurity? registrySecurity);
C#
[System.Runtime.InteropServices.ComVisible(false)]
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, Microsoft.Win32.RegistryOptions registryOptions, System.Security.AccessControl.RegistrySecurity registrySecurity);
C#
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, Microsoft.Win32.RegistryOptions registryOptions, System.Security.AccessControl.RegistrySecurity registrySecurity);

パラメーター

subkey
String

作成または開くサブキーの名前またはパス。

permissionCheck
RegistryKeyPermissionCheck

キーを読み取りアクセスまたは読み取り/書き込みアクセス用に開くかどうかを指定する列挙値の 1 つ。

registryOptions
RegistryOptions

使用するレジストリ オプション。

registrySecurity
RegistrySecurity

新しいサブキーのアクセス制御セキュリティ。

戻り値

新しく作成されたサブキー。操作が失敗した場合は null

属性

例外

subkeynullです。

現在の RegistryKey オブジェクトが閉じられます。 閉じたキーにはアクセスできません。

現在の RegistryKey オブジェクトに書き込むことができません。たとえば、書き込み可能なキーとして開かれていたり、ユーザーが必要なアクセス権を持っていない場合などです。

入れ子レベルが 510 を超えています。

-又は-

キーの削除や、LocalMachine ルートでのキーの作成の試行など、システム エラーが発生しました。

ユーザーには、レジストリ キーを作成または開くために必要なアクセス許可がありません。

注釈

現在の RegistryKey オブジェクトを取得するには、subkeyに空の文字列 ("") を指定します。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET 6, 7, 8, 9
.NET Framework 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
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5