RegistryKey.CreateSubKey メソッド

定義

新しいサブキーを作成するか、または既存のサブキーを開きます。Creates a new subkey or opens an existing subkey.

オーバーロード

CreateSubKey(String)

新しいサブキーを作成するか、または既存のサブキーを書き込みアクセスで開きます。Creates a new subkey or opens an existing subkey for write access.

CreateSubKey(String, RegistryKeyPermissionCheck)

指定されたアクセス許可チェック オプションを使用して、新しいサブキーを作成するか、既存のサブキーを書き込みアクセスで開きます。Creates a new subkey or opens an existing subkey for write access, using the specified permission check option.

CreateSubKey(String, Boolean)

指定したアクセス権を持つ、新しいサブキーを作成するか、既存のサブキーを開きます。Creates a new subkey or opens an existing subkey with the specified access. .NET Framework 4.6 以降で使用できます。Available starting with .NET Framework 4.6.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistrySecurity)

指定されたアクセス許可チェック オプションおよびレジストリ セキュリティを使用して、新しいサブキーを作成するか、既存のサブキーを書き込みアクセスで開きます。Creates a new subkey or opens an existing subkey for write access, using the specified permission check option and registry security.

CreateSubKey(String, Boolean, RegistryOptions)

指定したアクセス権を持つ、新しいサブキーを作成するか、既存のサブキーを開きます。Creates a new subkey or opens an existing subkey with the specified access. .NET Framework 4.6 以降で使用できます。Available starting with .NET Framework 4.6.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions)

指定されたアクセス許可チェック オプションおよびレジストリ オプションを使用して、サブキーを作成するか、サブキーを書き込みアクセスで開きます。Creates a subkey or opens a subkey for write access, using the specified permission check and registry options.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions, RegistrySecurity)

指定されたアクセス許可チェック オプション、レジストリ オプション、およびレジストリ セキュリティを使用して、サブキーを作成するか、サブキーを書き込みアクセスで開きます。Creates a subkey or opens a subkey for write access, using the specified permission check option, registry option, and registry security.

CreateSubKey(String)

新しいサブキーを作成するか、または既存のサブキーを書き込みアクセスで開きます。Creates a new subkey or opens an existing subkey for write access.

public:
 Microsoft::Win32::RegistryKey ^ CreateSubKey(System::String ^ subkey);
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey);
member this.CreateSubKey : string -> Microsoft.Win32.RegistryKey
Public Function CreateSubKey (subkey As String) As RegistryKey

パラメーター

subkey
String

作成または開くサブキーの名前またはパス。The name or path of the subkey to create or open. この文字列の大文字と小文字は区別されません。This string is not case-sensitive.

戻り値

新しく作成されたサブキー、または操作に失敗した場合は nullThe newly created subkey, or null if the operation failed. 長さ 0 の文字列を subkey に指定した場合は、現在の RegistryKey オブジェクトが返されます。If a zero-length string is specified for subkey, the current RegistryKey object is returned.

例外

subkeynull です。subkey is null.

レジストリ キーを作成する、または開くために必要なアクセス許可がユーザーにありません。The user does not have the permissions required to create or open the registry key.

このメソッドの実行対象の RegistryKey が閉じられています。閉じられたキーにはアクセスできません。The RegistryKey on which this method is being invoked is closed (closed keys cannot be accessed).

RegistryKey に書き込みができません。書き込み可能なキーとして開かれていない、必要なアクセス権がユーザーに設定されていないなどの理由が考えられます。The RegistryKey cannot be written to; for example, it was not opened as a writable key , or the user does not have the necessary access rights.

入れ子のレベルが 510 を超えています。The nesting level exceeds 510.

または-or- キーの削除、または LocalMachine のルートでキー作成を試行したなどのシステム エラーが発生しました。A system error occurred, such as deletion of the key, or an attempt to create a key in the LocalMachine root.

次のコード例は、HKEY_CURRENT_USER の下にサブキーを作成し、その内容を操作して、サブキーを削除する方法を示しています。The following code example shows how to create a subkey under HKEY_CURRENT_USER, manipulate its contents, and then delete the subkey.

using namespace System;
using namespace System::Security::Permissions;
using namespace Microsoft::Win32;

int main()
{
   // Create a subkey named Test9999 under HKEY_CURRENT_USER.
   RegistryKey ^ test9999 = Registry::CurrentUser->CreateSubKey( "Test9999" );

   // Create two subkeys under HKEY_CURRENT_USER\Test9999.
   test9999->CreateSubKey( "TestName" )->Close();
   RegistryKey ^ testSettings = test9999->CreateSubKey( "TestSettings" );

   // Create data for the TestSettings subkey.
   testSettings->SetValue( "Language", "French" );
   testSettings->SetValue( "Level", "Intermediate" );
   testSettings->SetValue( "ID", 123 );
   testSettings->Close();

   // Print the information from the Test9999 subkey.
   Console::WriteLine( "There are {0} subkeys under Test9999.", test9999->SubKeyCount.ToString() );
   array<String^>^subKeyNames = test9999->GetSubKeyNames();
   for ( int i = 0; i < subKeyNames->Length; i++ )
   {
      RegistryKey ^ tempKey = test9999->OpenSubKey( subKeyNames[ i ] );
      Console::WriteLine( "\nThere are {0} values for {1}.", tempKey->ValueCount.ToString(), tempKey->Name );
      array<String^>^valueNames = tempKey->GetValueNames();
      for ( int j = 0; j < valueNames->Length; j++ )
      {
         Console::WriteLine( "{0,-8}: {1}", valueNames[ j ], tempKey->GetValue( valueNames[ j ] )->ToString() );

      }
   }
   
   // Delete the ID value.
   testSettings = test9999->OpenSubKey( "TestSettings", true );
   testSettings->DeleteValue( "id" );

   // Verify the deletion.
   Console::WriteLine( dynamic_cast<String^>(testSettings->GetValue(  "id", "ID not found." )) );
   testSettings->Close();

   // 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();
   }
}
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();
        }
    }
}
Imports System.Security.Permissions
Imports Microsoft.Win32

Public Class RegKey
    Shared Sub Main()

        ' Create a subkey named Test9999 under HKEY_CURRENT_USER.
        Dim test9999 As RegistryKey = _
            Registry.CurrentUser.CreateSubKey("Test9999")

        ' Create two subkeys under HKEY_CURRENT_USER\Test9999.
        test9999.CreateSubKey("TestName").Close()
        Dim testSettings As RegistryKey = _
            test9999.CreateSubKey("TestSettings")

        ' Create data for the TestSettings subkey.
        testSettings.SetValue("Language", "French")
        testSettings.SetValue("Level", "Intermediate")
        testSettings.SetValue("ID", 123)
        testSettings.Close()

        ' Print the information from the Test9999 subkey.
        Console.WriteLine("There are {0} subkeys under Test9999.", _
            test9999.SubKeyCount.ToString())
        For Each subKeyName As String In test9999.GetSubKeyNames()
            Dim tempKey As RegistryKey = _
                test9999.OpenSubKey(subKeyName)
            Console.WriteLine(vbCrLf & "There are {0} values for " & _
                "{1}.", tempKey.ValueCount.ToString(), tempKey.Name)
            For Each valueName As String In tempKey.GetValueNames()
                Console.WriteLine("{0,-8}: {1}", valueName, _
                    tempKey.GetValue(valueName).ToString())
            Next
        Next

        ' Delete the ID value.
        testSettings = test9999.OpenSubKey("TestSettings", True)
        testSettings.DeleteValue("id")

        ' Verify the deletion.
        Console.WriteLine(CType(testSettings.GetValue( _
            "id", "ID not found."), String))
        testSettings.Close()

        ' Delete or close the new subkey.
        Console.Write(vbCrLf & "Delete newly created " & _
            "registry key? (Y/N) ")
        If Char.ToUpper(Convert.ToChar(Console.Read())) = "Y"C Then
            Registry.CurrentUser.DeleteSubKeyTree("Test9999")
            Console.WriteLine(vbCrLf & "Registry key {0} deleted.", _
                test9999.Name)
        Else
            Console.WriteLine(vbCrLf & "Registry key {0} closed.", _
                test9999.ToString())
            test9999.Close()
        End If
   
    End Sub
End Class

注釈

この操作を実行するには、ユーザーはレジストリ階層で次のレベル以上の権限を持っている必要があります。In order to perform this action, the user must have permission at this level and below in the registry hierarchy.

注意事項

悪意のあるRegistryKeyプログラムによって何千もの無意味なサブキーまたはキーと値のペアが作成されるような方法でオブジェクトを公開しないでください。Do not expose RegistryKey objects in such a way that a malicious program could create thousands of meaningless subkeys or key/value pairs. たとえば、呼び出し元が任意のキーまたは値を入力することを許可しないでください。For example, do not allow callers to enter arbitrary keys or values.

セキュリティ

RegistryPermission
指定したレジストリキーが存在する場合にそのキーを変更する機能、またはレジストリキーが存在しない場合にそのキーを作成する機能。for the ability to modify the specified registry key if it exists, or for the ability to create the registry key if it does not already exist. 関連付けられWriteた列挙型:、CreateAssociated enumerations: Write, Create

SecurityPermission
指定されたレジストリキーがリモートキーである場合にアクセスする権限。for the ability to access the specified registry key if it is a remote key. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

こちらもご覧ください

CreateSubKey(String, RegistryKeyPermissionCheck)

指定されたアクセス許可チェック オプションを使用して、新しいサブキーを作成するか、既存のサブキーを書き込みアクセスで開きます。Creates a new subkey or opens an existing subkey for write access, using the specified permission check option.

public:
 Microsoft::Win32::RegistryKey ^ CreateSubKey(System::String ^ subkey, Microsoft::Win32::RegistryKeyPermissionCheck permissionCheck);
[System.Runtime.InteropServices.ComVisible(false)]
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck);
member this.CreateSubKey : string * Microsoft.Win32.RegistryKeyPermissionCheck -> Microsoft.Win32.RegistryKey
Public Function CreateSubKey (subkey As String, permissionCheck As RegistryKeyPermissionCheck) As RegistryKey

パラメーター

subkey
String

作成または開くサブキーの名前またはパス。The name or path of the subkey to create or open. この文字列の大文字と小文字は区別されません。This string is not case-sensitive.

permissionCheck
RegistryKeyPermissionCheck

キーが読み取りアクセスで開かれているか、それとも読み取り/書き込みアクセスで開かれているかを示す列挙値の 1 つ。One of the enumeration values that specifies whether the key is opened for read or read/write access.

戻り値

新しく作成されたサブキー、または操作に失敗した場合は nullThe newly created subkey, or null if the operation failed. 長さ 0 の文字列を subkey に指定した場合は、現在の RegistryKey オブジェクトが返されます。If a zero-length string is specified for subkey, the current RegistryKey object is returned.

属性

例外

subkeynullです。subkey is null.

レジストリ キーを作成する、または開くために必要なアクセス許可がユーザーにありません。The user does not have the permissions required to create or open the registry key.

permissionCheck に無効な値が含まれています。permissionCheck contains an invalid value.

このメソッドの実行対象の RegistryKey が閉じられています。閉じられたキーにはアクセスできません。The RegistryKey on which this method is being invoked is closed (closed keys cannot be accessed).

RegistryKey に書き込みができません。書き込み可能なキーとして開かれていない、必要なアクセス権がユーザーに設定されていないなどの理由が考えられます。The RegistryKey cannot be written to; for example, it was not opened as a writable key, or the user does not have the necessary access rights.

入れ子のレベルが 510 を超えています。The nesting level exceeds 510.

または-or- キーの削除、または LocalMachine のルートでキー作成を試行したなどのシステム エラーが発生しました。A system error occurred, such as deletion of the key, or an attempt to create a key in the LocalMachine root.

注釈

この操作を実行するには、ユーザーはレジストリ階層で次のレベル以上の権限を持っている必要があります。In order to perform this action, the user must have permission at this level and below in the registry hierarchy.

注意事項

悪意のあるRegistryKeyプログラムによって何千もの無意味なサブキーまたはキーと値のペアが作成されるような方法でオブジェクトを公開しないでください。Do not expose RegistryKey objects in such a way that a malicious program could create thousands of meaningless subkeys or key/value pairs. たとえば、呼び出し元が任意のキーまたは値を入力することを許可しないでください。For example, do not allow callers to enter arbitrary keys or values.

OpenSubKeyメソッドを使用するには、 RegistryKeyクラスのインスタンスが必要です。In order to use the OpenSubKey method, you must have an instance of the RegistryKey class. RegistryKeyインスタンスを取得するには、 Registryクラスの静的メンバーの1つを使用します。To get an instance of RegistryKey, use one of the static members of the Registry class.

セキュリティ

RegistryPermission
指定したレジストリキーが存在する場合にそのキーを変更する機能、またはレジストリキーが存在しない場合にそのキーを作成する機能。for the ability to modify the specified registry key if it exists, or for the ability to create the registry key if it does not already exist. 関連付けられWriteた列挙型:、CreateAssociated enumerations: Write, Create

SecurityPermission
指定されたレジストリキーがリモートキーである場合にアクセスする権限。for the ability to access the specified registry key if it is a remote key. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

こちらもご覧ください

CreateSubKey(String, Boolean)

指定したアクセス権を持つ、新しいサブキーを作成するか、既存のサブキーを開きます。Creates a new subkey or opens an existing subkey with the specified access. .NET Framework 4.6 以降で使用できます。Available starting with .NET Framework 4.6.

public:
 Microsoft::Win32::RegistryKey ^ CreateSubKey(System::String ^ subkey, bool writable);
[System.Runtime.InteropServices.ComVisible(false)]
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, bool writable);
member this.CreateSubKey : string * bool -> Microsoft.Win32.RegistryKey
Public Function CreateSubKey (subkey As String, writable As Boolean) As RegistryKey

パラメーター

subkey
String

作成または開くサブキーの名前またはパス。The name or path of the subkey to create or open. この文字列の大文字と小文字は区別されません。This string is not case-sensitive.

writable
Boolean

新しいサブキーが書き込み可能であることを示すには true。それ以外の場合は falsetrue to indicate the new subkey is writable; otherwise, false.

戻り値

新しく作成されたサブキー、または操作に失敗した場合は nullThe newly created subkey, or null if the operation failed. 長さ 0 の文字列を subkey に指定した場合は、現在の RegistryKey オブジェクトが返されます。If a zero-length string is specified for subkey, the current RegistryKey object is returned.

属性

例外

subkeynullです。subkey is null.

レジストリ キーを作成する、または開くために必要なアクセス許可がユーザーにありません。The user does not have the permissions required to create or open the registry key.

現在の RegistryKey に書き込みができません。たとえば、書き込み可能なキーとして開かれていないか、必要なアクセス権がユーザーにありません。The current RegistryKey cannot be written to; for example, it was not opened as a writable key, or the user does not have the necessary access rights.

入れ子のレベルが 510 を超えています。The nesting level exceeds 510.

- または --or- キーの削除、または LocalMachine のルートでキー作成を試行したなどのシステム エラーが発生しました。A system error occurred, such as deletion of the key, or an attempt to create a key in the LocalMachine root.

注釈

この操作を実行するには、ユーザーはレジストリ階層で次のレベル以上の権限を持っている必要があります。In order to perform this action, the user must have permission at this level and below in the registry hierarchy.

注意事項

悪意のあるRegistryKeyプログラムによって何千もの無意味なサブキーまたはキーと値のペアが作成されるような方法でオブジェクトを公開しないでください。Do not expose RegistryKey objects in such a way that a malicious program could create thousands of meaningless subkeys or key/value pairs. たとえば、呼び出し元が任意のキーまたは値を入力することを許可しないでください。For example, do not allow callers to enter arbitrary keys or values.

CreateSubKeyメソッドを使用するには、 RegistryKeyクラスのインスタンスが必要です。In order to use the CreateSubKey method, you must have an instance of the RegistryKey class. RegistryKeyインスタンスを取得するには、 Registryクラスの静的メンバーの1つを使用します。To get an instance of RegistryKey, use one of the static members of the Registry class.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistrySecurity)

指定されたアクセス許可チェック オプションおよびレジストリ セキュリティを使用して、新しいサブキーを作成するか、既存のサブキーを書き込みアクセスで開きます。Creates a new subkey or opens an existing subkey for write access, using the specified permission check option and registry security.

public:
 Microsoft::Win32::RegistryKey ^ CreateSubKey(System::String ^ subkey, Microsoft::Win32::RegistryKeyPermissionCheck permissionCheck, System::Security::AccessControl::RegistrySecurity ^ registrySecurity);
[System.Runtime.InteropServices.ComVisible(false)]
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, System.Security.AccessControl.RegistrySecurity registrySecurity);
member this.CreateSubKey : string * Microsoft.Win32.RegistryKeyPermissionCheck * System.Security.AccessControl.RegistrySecurity -> Microsoft.Win32.RegistryKey

パラメーター

subkey
String

作成または開くサブキーの名前またはパス。The name or path of the subkey to create or open. この文字列の大文字と小文字は区別されません。This string is not case-sensitive.

permissionCheck
RegistryKeyPermissionCheck

キーが読み取りアクセスで開かれているか、それとも読み取り/書き込みアクセスで開かれているかを示す列挙値の 1 つ。One of the enumeration values that specifies whether the key is opened for read or read/write access.

registrySecurity
RegistrySecurity

新しいキーのアクセス制御セキュリティ。The access control security for the new key.

戻り値

新しく作成されたサブキー、または操作に失敗した場合は nullThe newly created subkey, or null if the operation failed. 長さ 0 の文字列を subkey に指定した場合は、現在の RegistryKey オブジェクトが返されます。If a zero-length string is specified for subkey, the current RegistryKey object is returned.

属性

例外

subkeynullです。subkey is null.

レジストリ キーを作成する、または開くために必要なアクセス許可がユーザーにありません。The user does not have the permissions required to create or open the registry key.

permissionCheck に無効な値が含まれています。permissionCheck contains an invalid value.

このメソッドの実行対象の RegistryKey が閉じられています。閉じられたキーにはアクセスできません。The RegistryKey on which this method is being invoked is closed (closed keys cannot be accessed).

現在の RegistryKey に書き込みができません。たとえば、書き込み可能なキーとして開かれていないか、必要なアクセス権がユーザーにありません。The current RegistryKey cannot be written to; for example, it was not opened as a writable key, or the user does not have the necessary access rights.

入れ子のレベルが 510 を超えています。The nesting level exceeds 510.

- または --or- キーの削除、または LocalMachine のルートでキー作成を試行したなどのシステム エラーが発生しました。A system error occurred, such as deletion of the key, or an attempt to create a key in the LocalMachine root.

注釈

メソッドCreateSubKeyは、 registrySecurityパラメーターによって指定されたアクセス制御を持つレジストリキーを作成します。The CreateSubKey method creates a registry key that has the access control specified by the registrySecurity parameter. 返されるregistrySecurityオブジェクトはレジストリキーを表しますが、そのオブジェクトは、パラメーターで指定されたアクセス制御によって制限されません。 RegistryKeyThe RegistryKey object that is returned represents the registry key, but that object is not restricted by the access control specified in the registrySecurity parameter.

permissionCheckRegistryKeyPermissionCheck.ReadWriteSubTreeの場合、キーは読み取り/書き込みアクセス用に開かれます。If permissionCheck is RegistryKeyPermissionCheck.ReadWriteSubTree, the key is opened for read/write access. permissionCheckRegistryKeyPermissionCheck.ReadSubTreeの場合、キーは読み取りアクセス用に開かれます。If permissionCheck is RegistryKeyPermissionCheck.ReadSubTree, the key is opened for read access.

旧バージョンとの互換性のために、がpermissionCheck RegistryKeyPermissionCheck.Defaultで、親キーにもRegistryKeyPermissionCheck.Defaultある場合、キーは読み取りと書き込みのために開かれます。For backward compatibility, the key is opened for reading and writing if permissionCheck is RegistryKeyPermissionCheck.Default and the parent key also has RegistryKeyPermissionCheck.Default. 親キーに他の設定がある場合、読み取り/書き込みの状態は親キーの設定によって制御されます。If the parent key has any other setting, read/write status is controlled by the parent key's setting.

この操作を実行するには、ユーザーはレジストリ階層で次のレベル以上の権限を持っている必要があります。In order to perform this action, the user must have permissions at this level and below in the registry hierarchy.

注意事項

悪意のあるRegistryKeyプログラムによって何千もの無意味なサブキーまたはキーと値のペアが作成されるような方法でオブジェクトを公開しないでください。Do not expose RegistryKey objects in such a way that a malicious program could create thousands of meaningless subkeys or key/value pairs. たとえば、呼び出し元が任意のキーまたは値を入力することを許可しないでください。For example, do not allow callers to enter arbitrary keys or values.

OpenSubKeyメソッドを使用するには、 RegistryKeyクラスのインスタンスが必要です。In order to use the OpenSubKey method, you must have an instance of the RegistryKey class. RegistryKeyインスタンスを取得するには、 Registryクラスの静的メンバーの1つを使用します。To get an instance of RegistryKey, use one of the static members of the Registry class.

セキュリティ

RegistryPermission
指定したレジストリキーが存在する場合にそのキーを変更する機能、またはレジストリキーが存在しない場合にそのキーを作成する機能。for the ability to modify the specified registry key if it exists, or for the ability to create the registry key if it does not already exist. 関連付けられWriteた列挙型:、CreateAssociated enumerations: Write, Create

SecurityPermission
指定されたレジストリキーがリモートキーである場合にアクセスする権限。for the ability to access the specified registry key if it is a remote key. 関連付けられた列挙型:UnmanagedCodeAssociated enumeration: UnmanagedCode

こちらもご覧ください

CreateSubKey(String, Boolean, RegistryOptions)

指定したアクセス権を持つ、新しいサブキーを作成するか、既存のサブキーを開きます。Creates a new subkey or opens an existing subkey with the specified access. .NET Framework 4.6 以降で使用できます。Available starting with .NET Framework 4.6.

public:
 Microsoft::Win32::RegistryKey ^ CreateSubKey(System::String ^ subkey, bool writable, Microsoft::Win32::RegistryOptions options);
[System.Runtime.InteropServices.ComVisible(false)]
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, bool writable, Microsoft.Win32.RegistryOptions options);
member this.CreateSubKey : string * bool * Microsoft.Win32.RegistryOptions -> Microsoft.Win32.RegistryKey
Public Function CreateSubKey (subkey As String, writable As Boolean, options As RegistryOptions) As RegistryKey

パラメーター

subkey
String

作成または開くサブキーの名前またはパス。The name or path of the subkey to create or open. この文字列の大文字と小文字は区別されません。This string is not case-sensitive.

writable
Boolean

新しいサブキーが書き込み可能であることを示すには true。それ以外の場合は falsetrue to indicate the new subkey is writable; otherwise, false.

options
RegistryOptions

使用するレジストリ オプション。The registry option to use.

戻り値

新しく作成されたサブキー、または操作に失敗した場合は nullThe newly created subkey, or null if the operation failed. 長さ 0 の文字列を subkey に指定した場合は、現在の RegistryKey オブジェクトが返されます。If a zero-length string is specified for subkey, the current RegistryKey object is returned.

属性

例外

subkeynullです。subkey is null.

options に有効なオプションが指定されていません。options does not specify a valid Option

レジストリ キーを作成する、または開くために必要なアクセス許可がユーザーにありません。The user does not have the permissions required to create or open the registry key.

現在の RegistryKey に書き込みができません。たとえば、書き込み可能なキーとして開かれていないか、必要なアクセス権がユーザーにありません。The current RegistryKey cannot be written to; for example, it was not opened as a writable key, or the user does not have the necessary access rights.

入れ子のレベルが 510 を超えています。The nesting level exceeds 510.

- または --or- キーの削除、または LocalMachine のルートでキー作成を試行したなどのシステム エラーが発生しました。A system error occurred, such as deletion of the key, or an attempt to create a key in the LocalMachine root.

注釈

この操作を実行するには、ユーザーはレジストリ階層で次のレベル以上の権限を持っている必要があります。In order to perform this action, the user must have permission at this level and below in the registry hierarchy.

注意事項

悪意のあるRegistryKeyプログラムによって何千もの無意味なサブキーまたはキーと値のペアが作成されるような方法でオブジェクトを公開しないでください。Do not expose RegistryKey objects in such a way that a malicious program could create thousands of meaningless subkeys or key/value pairs. たとえば、呼び出し元が任意のキーまたは値を入力することを許可しないでください。For example, do not allow callers to enter arbitrary keys or values.

CreateSubKeyメソッドを使用するには、 RegistryKeyクラスのインスタンスが必要です。In order to use the CreateSubKey method, you must have an instance of the RegistryKey class. RegistryKeyインスタンスを取得するには、 Registryクラスの静的メンバーの1つを使用します。To get an instance of RegistryKey, use one of the static members of the Registry class.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions)

指定されたアクセス許可チェック オプションおよびレジストリ オプションを使用して、サブキーを作成するか、サブキーを書き込みアクセスで開きます。Creates a subkey or opens a subkey for write access, using the specified permission check and registry options.

public:
 Microsoft::Win32::RegistryKey ^ CreateSubKey(System::String ^ subkey, Microsoft::Win32::RegistryKeyPermissionCheck permissionCheck, Microsoft::Win32::RegistryOptions options);
[System.Runtime.InteropServices.ComVisible(false)]
public Microsoft.Win32.RegistryKey CreateSubKey (string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, Microsoft.Win32.RegistryOptions options);
member this.CreateSubKey : string * Microsoft.Win32.RegistryKeyPermissionCheck * Microsoft.Win32.RegistryOptions -> Microsoft.Win32.RegistryKey
Public Function CreateSubKey (subkey As String, permissionCheck As RegistryKeyPermissionCheck, options As RegistryOptions) As RegistryKey

パラメーター

subkey
String

作成または開くサブキーの名前またはパス。The name or path of the subkey to create or open.

permissionCheck
RegistryKeyPermissionCheck

キーが読み取りアクセスで開かれているか、それとも読み取り/書き込みアクセスで開かれているかを示す列挙値の 1 つ。One of the enumeration values that specifies whether the key is opened for read or read/write access.

registryOptions
RegistryOptions

使用するレジストリ オプション (揮発性のキーを作成するなど)。The registry option to use; for example, that creates a volatile key.

戻り値

新しく作成されたサブキー、または操作に失敗した場合は nullThe newly created subkey, or null if the operation failed.

属性

例外

subkeynullです。subkey is null.

現在の RegistryKey オブジェクトは閉じています。閉じられたキーにはアクセスできません。The current RegistryKey object is closed (closed keys cannot be accessed).

現在の RegistryKey オブジェクトに書き込みができません。書き込み可能なキーとして開かれていない、必要なアクセス権がユーザーに設定されていないなどの理由が考えられます。The current RegistryKey object cannot be written to; for example, it was not opened as a writable key, or the user does not have the required access rights.

入れ子のレベルが 510 を超えています。The nesting level exceeds 510.

- または --or- システム エラーが発生しました。たとえば、LocalMachine ルートでキーが削除されたか、キーの作成が試行されました。A system error occurred, such as deletion of the key or an attempt to create a key in the LocalMachine root.

レジストリ キーを作成する、または開くために必要なアクセス許可がユーザーにありません。The user does not have the permissions required to create or open the registry key.

注釈

現在RegistryKeyのオブジェクトを取得するには、に空のsubkey文字列 ("") を指定します。To obtain the current RegistryKey object, specify an empty string ("") for subkey.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions, RegistrySecurity)

指定されたアクセス許可チェック オプション、レジストリ オプション、およびレジストリ セキュリティを使用して、サブキーを作成するか、サブキーを書き込みアクセスで開きます。Creates a subkey or opens a subkey for write access, using the specified permission check option, registry option, and registry security.

public:
 Microsoft::Win32::RegistryKey ^ CreateSubKey(System::String ^ subkey, Microsoft::Win32::RegistryKeyPermissionCheck permissionCheck, Microsoft::Win32::RegistryOptions registryOptions, System::Security::AccessControl::RegistrySecurity ^ registrySecurity);
[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);
member this.CreateSubKey : string * Microsoft.Win32.RegistryKeyPermissionCheck * Microsoft.Win32.RegistryOptions * System.Security.AccessControl.RegistrySecurity -> Microsoft.Win32.RegistryKey

パラメーター

subkey
String

作成または開くサブキーの名前またはパス。The name or path of the subkey to create or open.

permissionCheck
RegistryKeyPermissionCheck

キーが読み取りアクセスで開かれているか、それとも読み取り/書き込みアクセスで開かれているかを示す列挙値の 1 つ。One of the enumeration values that specifies whether the key is opened for read or read/write access.

registryOptions
RegistryOptions

使用するレジストリ オプション。The registry option to use.

registrySecurity
RegistrySecurity

新しいサブキーのアクセス制御セキュリティ。The access control security for the new subkey.

戻り値

新しく作成されたサブキー、または操作に失敗した場合は nullThe newly created subkey, or null if the operation failed.

属性

例外

subkeynullです。subkey is null.

現在の RegistryKey は閉じています。The current RegistryKey object is closed. 閉じられたキーにはアクセスできません。Closed keys cannot be accessed.

現在の RegistryKey オブジェクトに書き込みができません。書き込み可能なキーとして開かれていない、必要なアクセス権がユーザーに設定されていないなどの理由が考えられます。The current RegistryKey object cannot be written to; for example, it was not opened as a writable key, or the user does not have the required access rights.

入れ子のレベルが 510 を超えています。The nesting level exceeds 510.

- または --or- システム エラーが発生しました。たとえば、LocalMachine ルートでキーが削除されたか、キーの作成が試行されました。A system error occurred, such as deletion of the key or an attempt to create a key in the LocalMachine root.

レジストリ キーを作成する、または開くために必要なアクセス許可がユーザーにありません。The user does not have the permissions required to create or open the registry key.

注釈

現在RegistryKeyのオブジェクトを取得するには、に空のsubkey文字列 ("") を指定します。To obtain the current RegistryKey object, specify an empty string ("") for subkey.

適用対象