Поделиться через


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

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

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, 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);
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);
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)

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

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

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

Параметры

subkey
String

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

permissionCheck
RegistryKeyPermissionCheck

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

registryOptionsoptions
RegistryOptions

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

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

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

Атрибуты

Исключения

subkey имеет значение null.

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

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

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

-или-

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

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

Комментарии

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

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

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);
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);
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.

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