Язык

RegistryKey.CreateSubKey Метод

Определение

Создает новый подраздел или открывает существующий подраздел.

Перегрузки

Имя Описание
CreateSubKey(String)

Создает новый подраздел или открывает существующий подраздел для доступа на запись.

CreateSubKey(String, RegistryKeyPermissionCheck)

Создает новый подраздел или открывает существующий подраздел для доступа на запись с помощью указанного параметра проверки разрешений.

CreateSubKey(String, Boolean)

Создает новый подраздел или открывает существующий подраздел с указанным доступом. Доступно начиная с .NET Framework 4.6.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions)

Создает подраздел или открывает подраздел для доступа на запись, используя указанные параметры проверки разрешений и реестра.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistrySecurity)

Создает новый подраздел или открывает существующий подраздел для доступа на запись, используя указанный параметр проверки разрешений и безопасность реестра.

CreateSubKey(String, Boolean, RegistryOptions)

Создает новый подраздел или открывает существующий подраздел с указанным доступом. Доступно начиная с .NET Framework 4.6.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions, RegistrySecurity)

Создает подраздел или открывает подраздел для доступа на запись, используя указанный параметр проверки разрешений, параметр реестра и безопасность реестра.

CreateSubKey(String)

Исходный код:
RegistryKey.cs

Создает новый подраздел или открывает существующий подраздел для доступа на запись.

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

Имя или путь к подразделу для создания или открытия. Эта строка не учитывает регистр.

Возвращаемое значение

Созданный подраздел или null если операция завершилась ошибкой. Если задана subkeyстрока нулевой длины, возвращается текущий RegistryKey объект.

Исключения

subkey равно null.

У пользователя нет разрешений, необходимых для создания или открытия раздела реестра.

Значение RegistryKey , в котором вызывается этот метод, закрывается (закрытые ключи не могут быть доступны).

Невозможно RegistryKey записать в; например, он не был открыт как доступный для записи ключ или у пользователя нет необходимых прав доступа.

Уровень вложения превышает 510.

–или–

Произошла системная ошибка, например удаление ключа или попытка создать ключ в LocalMachine корне.

Примеры

В следующем примере кода показано, как создать вложенный ключ в HKEY_CURRENT_USER, управлять его содержимым и удалять вложенный ключ.

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

Комментарии

Чтобы выполнить это действие, пользователь должен иметь разрешение на этом уровне и ниже в иерархии реестра.

Предостережение

Не предоставляйте RegistryKey объекты таким образом, чтобы вредоносные программы могли создавать тысячи бессмысленных вложенных ключей или пар "ключ-значение". Например, не разрешайте вызывающим пользователям вводить произвольные ключи или значения.

См. также раздел

Применяется к

CreateSubKey(String, RegistryKeyPermissionCheck)

Исходный код:
RegistryKey.cs

Создает новый подраздел или открывает существующий подраздел для доступа на запись с помощью указанного параметра проверки разрешений.

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

Параметры

subkey
String

Имя или путь к подразделу для создания или открытия. Эта строка не учитывает регистр.

permissionCheck
RegistryKeyPermissionCheck

Одно из значений перечисления, указывающее, открыт ли ключ для доступа на чтение или чтение или запись.

Возвращаемое значение

Созданный подраздел или null если операция завершилась ошибкой. Если задана subkeyстрока нулевой длины, возвращается текущий RegistryKey объект.

Атрибуты

Исключения

subkey равно null.

У пользователя нет разрешений, необходимых для создания или открытия раздела реестра.

permissionCheck содержит недопустимое значение.

Значение RegistryKey , в котором вызывается этот метод, закрывается (закрытые ключи не могут быть доступны).

Невозможно RegistryKey записать в; например, он не был открыт как доступный для записи ключ или у пользователя нет необходимых прав доступа.

Уровень вложения превышает 510.

–или–

Произошла системная ошибка, например удаление ключа или попытка создать ключ в LocalMachine корне.

Комментарии

Чтобы выполнить это действие, пользователь должен иметь разрешение на этом уровне и ниже в иерархии реестра.

Предостережение

Не предоставляйте RegistryKey объекты таким образом, чтобы вредоносные программы могли создавать тысячи бессмысленных вложенных ключей или пар "ключ-значение". Например, не разрешайте вызывающим пользователям вводить произвольные ключи или значения.

Чтобы использовать OpenSubKey метод, необходимо иметь экземпляр RegistryKey класса. Чтобы получить экземпляр RegistryKey, используйте один из статических элементов Registry класса.

См. также раздел

Применяется к

CreateSubKey(String, Boolean)

Исходный код:
RegistryKey.cs

Создает новый подраздел или открывает существующий подраздел с указанным доступом. Доступно начиная с .NET Framework 4.6.

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

Параметры

subkey
String

Имя или путь к подразделу для создания или открытия. Эта строка не учитывает регистр.

writable
Boolean

true Значение , указывающее, что новый подраздел доступен для записи; falseв противном случае .

Возвращаемое значение

Созданный подраздел или null если операция завершилась ошибкой. Если задана subkeyстрока нулевой длины, возвращается текущий RegistryKey объект.

Атрибуты

Исключения

subkey равно null.

У пользователя нет разрешений, необходимых для создания или открытия раздела реестра.

Текущий RegistryKey не может быть записан в; например, он не был открыт в качестве ключа, доступного для записи, или у пользователя нет необходимых прав доступа.

Уровень вложения превышает 510.

–или–

Произошла системная ошибка, например удаление ключа или попытка создать ключ в LocalMachine корне.

Комментарии

Чтобы выполнить это действие, пользователь должен иметь разрешение на этом уровне и ниже в иерархии реестра.

Предостережение

Не предоставляйте RegistryKey объекты таким образом, чтобы вредоносные программы могли создавать тысячи бессмысленных вложенных ключей или пар "ключ-значение". Например, не разрешайте вызывающим пользователям вводить произвольные ключи или значения.

Чтобы использовать CreateSubKey метод, необходимо иметь экземпляр RegistryKey класса. Чтобы получить экземпляр RegistryKey, используйте один из статических элементов Registry класса.

Применяется к

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions)

Исходный код:
RegistryKey.cs

Создает подраздел или открывает подраздел для доступа на запись, используя указанные параметры проверки разрешений и реестра.

public:
 Microsoft::Win32::RegistryKey ^ CreateSubKey(System::String ^ subkey, Microsoft::Win32::RegistryKeyPermissionCheck permissionCheck, Microsoft::Win32::RegistryOptions registryOptions);
public Microsoft.Win32.RegistryKey CreateSubKey(string subkey, Microsoft.Win32.RegistryKeyPermissionCheck permissionCheck, Microsoft.Win32.RegistryOptions registryOptions);
member this.CreateSubKey : string * Microsoft.Win32.RegistryKeyPermissionCheck * Microsoft.Win32.RegistryOptions -> Microsoft.Win32.RegistryKey
Public Function CreateSubKey (subkey As String, permissionCheck As RegistryKeyPermissionCheck, registryOptions As RegistryOptions) As RegistryKey

Параметры

subkey
String

Имя или путь к подразделу для создания или открытия.

permissionCheck
RegistryKeyPermissionCheck

Одно из значений перечисления, указывающее, открыт ли ключ для доступа на чтение или чтение или запись.

registryOptions
RegistryOptions

Параметр реестра, используемый; Например, это создает переменный ключ.

Возвращаемое значение

Созданный подраздел или null если операция завершилась ошибкой.

Исключения

subkey равно null.

Текущий RegistryKey объект закрыт (закрытые ключи не могут быть доступны).

Текущий RegistryKey объект не может быть записан в; например, он не был открыт как ключ для записи или у пользователя нет необходимых прав доступа.

Уровень вложения превышает 510.

–или–

Произошла системная ошибка, например удаление ключа или попытка создать ключ в LocalMachine корне.

У пользователя нет разрешений, необходимых для создания или открытия раздела реестра.

Комментарии

Чтобы получить текущий RegistryKey объект, укажите пустую строку ("") для subkey.

Применяется к

CreateSubKey(String, RegistryKeyPermissionCheck, RegistrySecurity)

Исходный код:
RegistryKey.cs

Создает новый подраздел или открывает существующий подраздел для доступа на запись, используя указанный параметр проверки разрешений и безопасность реестра.

public:
 Microsoft::Win32::RegistryKey ^ CreateSubKey(System::String ^ subkey, Microsoft::Win32::RegistryKeyPermissionCheck permissionCheck, System::Security::AccessControl::RegistrySecurity ^ registrySecurity);
public Microsoft.Win32.RegistryKey CreateSubKey(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);
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
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.CreateSubKey : string * Microsoft.Win32.RegistryKeyPermissionCheck * System.Security.AccessControl.RegistrySecurity -> Microsoft.Win32.RegistryKey
Public Function CreateSubKey (subkey As String, permissionCheck As RegistryKeyPermissionCheck, registrySecurity As RegistrySecurity) As RegistryKey

Параметры

subkey
String

Имя или путь к подразделу для создания или открытия. Эта строка не учитывает регистр.

permissionCheck
RegistryKeyPermissionCheck

Одно из значений перечисления, указывающее, открыт ли ключ для доступа на чтение или чтение или запись.

registrySecurity
RegistrySecurity

Безопасность управления доступом для нового ключа.

Возвращаемое значение

Созданный подраздел или null если операция завершилась ошибкой. Если задана subkeyстрока нулевой длины, возвращается текущий RegistryKey объект.

Атрибуты

Исключения

subkey равно null.

У пользователя нет разрешений, необходимых для создания или открытия раздела реестра.

permissionCheck содержит недопустимое значение.

Значение RegistryKey , в котором вызывается этот метод, закрывается (закрытые ключи не могут быть доступны).

Текущий RegistryKey не может быть записан в; например, он не был открыт в качестве ключа, доступного для записи, или у пользователя нет необходимых прав доступа.

Уровень вложения превышает 510.

–или–

Произошла системная ошибка, например удаление ключа или попытка создать ключ в LocalMachine корне.

Комментарии

Метод CreateSubKey создает раздел реестра с контролем доступа, указанным параметром registrySecurity . Возвращаемый RegistryKey объект представляет раздел реестра, но этот объект не ограничен контролем доступа, указанным в параметре registrySecurity .

Если permissionCheck это RegistryKeyPermissionCheck.ReadWriteSubTreeтак, ключ открывается для доступа на чтение и запись. Если permissionCheck это RegistryKeyPermissionCheck.ReadSubTreeтак, ключ открывается для доступа на чтение.

Для обратной совместимости ключ открывается для чтения и записи, если permissionCheck есть RegistryKeyPermissionCheck.Default и родительский ключ.RegistryKeyPermissionCheck.Default Если родительский ключ имеет любой другой параметр, состояние чтения и записи управляется параметром родительского ключа.

Чтобы выполнить это действие, пользователь должен иметь разрешения на этом уровне и ниже в иерархии реестра.

Предостережение

Не предоставляйте RegistryKey объекты таким образом, чтобы вредоносные программы могли создавать тысячи бессмысленных вложенных ключей или пар "ключ-значение". Например, не разрешайте вызывающим пользователям вводить произвольные ключи или значения.

Чтобы использовать OpenSubKey метод, необходимо иметь экземпляр RegistryKey класса. Чтобы получить экземпляр RegistryKey, используйте один из статических элементов Registry класса.

См. также раздел

Применяется к

CreateSubKey(String, Boolean, RegistryOptions)

Исходный код:
RegistryKey.cs

Создает новый подраздел или открывает существующий подраздел с указанным доступом. Доступно начиная с .NET Framework 4.6.

public:
 Microsoft::Win32::RegistryKey ^ CreateSubKey(System::String ^ subkey, bool writable, Microsoft::Win32::RegistryOptions options);
public Microsoft.Win32.RegistryKey CreateSubKey(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
[<System.Runtime.InteropServices.ComVisible(false)>]
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

Имя или путь к подразделу для создания или открытия. Эта строка не учитывает регистр.

writable
Boolean

true Значение , указывающее, что новый подраздел доступен для записи; falseв противном случае .

options
RegistryOptions

Параметр реестра для использования.

Возвращаемое значение

Созданный подраздел или null если операция завершилась ошибкой. Если задана subkeyстрока нулевой длины, возвращается текущий RegistryKey объект.

Атрибуты

Исключения

subkey равно null.

options Не указывает допустимый параметр

У пользователя нет разрешений, необходимых для создания или открытия раздела реестра.

Текущий RegistryKey не может быть записан в; например, он не был открыт в качестве ключа, доступного для записи, или у пользователя нет необходимых прав доступа.

Уровень вложения превышает 510.

–или–

Произошла системная ошибка, например удаление ключа или попытка создать ключ в LocalMachine корне.

Комментарии

Чтобы выполнить это действие, пользователь должен иметь разрешение на этом уровне и ниже в иерархии реестра.

Предостережение

Не предоставляйте RegistryKey объекты таким образом, чтобы вредоносные программы могли создавать тысячи бессмысленных вложенных ключей или пар "ключ-значение". Например, не разрешайте вызывающим пользователям вводить произвольные ключи или значения.

Чтобы использовать CreateSubKey метод, необходимо иметь экземпляр RegistryKey класса. Чтобы получить экземпляр RegistryKey, используйте один из статических элементов Registry класса.

Применяется к

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions, RegistrySecurity)

Исходный код:
RegistryKey.cs

Создает подраздел или открывает подраздел для доступа на запись, используя указанный параметр проверки разрешений, параметр реестра и безопасность реестра.

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

Параметры

subkey
String

Имя или путь к подразделу для создания или открытия.

permissionCheck
RegistryKeyPermissionCheck

Одно из значений перечисления, указывающее, открыт ли ключ для доступа на чтение или чтение или запись.

registryOptions
RegistryOptions

Параметр реестра для использования.

registrySecurity
RegistrySecurity

Безопасность управления доступом для нового подраздела.

Возвращаемое значение

Созданный подраздел или null если операция завершилась ошибкой.

Атрибуты

Исключения

subkey равно null.

Текущий RegistryKey объект закрыт. Доступ к закрытым ключам невозможен.

Текущий RegistryKey объект не может быть записан в; например, он не был открыт как ключ для записи или у пользователя нет необходимых прав доступа.

Уровень вложения превышает 510.

–или–

Произошла системная ошибка, например удаление ключа или попытка создать ключ в LocalMachine корне.

У пользователя нет разрешений, необходимых для создания или открытия раздела реестра.

Комментарии

Чтобы получить текущий RegistryKey объект, укажите пустую строку ("") для subkey.

Применяется к