RegistryKey.CreateSubKey Metoda

Definicja

Tworzy nowy podklucz lub otwiera istniejący podklucz.

Przeciążenia

CreateSubKey(String)

Tworzy nowy podklucz lub otwiera istniejący podklucz na potrzeby dostępu do zapisu.

CreateSubKey(String, RegistryKeyPermissionCheck)

Tworzy nowy podklucz lub otwiera istniejący podklucz dostępu do zapisu przy użyciu określonej opcji sprawdzania uprawnień.

CreateSubKey(String, Boolean)

Tworzy nowy podklucz lub otwiera istniejący podklucz z określonym dostępem. Dostępne od programu .NET Framework 4.6.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistrySecurity)

Tworzy nowy podklucz lub otwiera istniejący podklucz dostępu do zapisu przy użyciu określonej opcji sprawdzania uprawnień i zabezpieczeń rejestru.

CreateSubKey(String, Boolean, RegistryOptions)

Tworzy nowy podklucz lub otwiera istniejący podklucz z określonym dostępem. Dostępne od programu .NET Framework 4.6.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions)

Tworzy podklucz lub otwiera podklucz na potrzeby dostępu do zapisu przy użyciu określonych opcji sprawdzania uprawnień i rejestru.

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions, RegistrySecurity)

Tworzy podklucz lub otwiera podklucz dostępu do zapisu przy użyciu określonej opcji sprawdzania uprawnień, opcji rejestru i zabezpieczeń rejestru.

CreateSubKey(String)

Źródło:
RegistryKey.cs

Tworzy nowy podklucz lub otwiera istniejący podklucz na potrzeby dostępu do zapisu.

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

Parametry

subkey
String

Nazwa lub ścieżka podklucza do utworzenia lub otwarcia. Ten ciąg nie uwzględnia wielkości liter.

Zwraca

Nowo utworzony podklucz lub null, jeśli operacja nie powiodła się. Jeśli dla subkeyokreślono ciąg o zerowej długości, zwracany jest bieżący obiekt RegistryKey.

Wyjątki

subkey jest null.

Użytkownik nie ma uprawnień wymaganych do utworzenia lub otwarcia klucza rejestru.

RegistryKey, na którym wywoływana jest ta metoda, jest zamknięta (nie można uzyskać dostępu do zamkniętych kluczy).

Nie można zapisać RegistryKey; na przykład nie został otwarty jako klucz zapisywalny lub użytkownik nie ma niezbędnych praw dostępu.

Poziom zagnieżdżania przekracza 510.

-lub-

Wystąpił błąd systemu, taki jak usunięcie klucza lub próba utworzenia klucza w katalogu głównym LocalMachine.

Przykłady

Poniższy przykład kodu pokazuje, jak utworzyć podklucz w HKEY_CURRENT_USER, manipulować jego zawartością, a następnie usunąć podklucz.

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

Uwagi

Aby wykonać tę akcję, użytkownik musi mieć uprawnienia na tym poziomie i poniżej w hierarchii rejestru.

Przestroga

Nie ujawniaj RegistryKey obiektów w taki sposób, że złośliwy program może utworzyć tysiące bez znaczenia podklucze lub pary klucz/wartość. Na przykład nie zezwalaj obiektom wywołującym na wprowadzanie dowolnych kluczy lub wartości.

Zobacz też

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.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)

Źródło:
RegistryKey.cs

Tworzy nowy podklucz lub otwiera istniejący podklucz dostępu do zapisu przy użyciu określonej opcji sprawdzania uprawnień.

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

Parametry

subkey
String

Nazwa lub ścieżka podklucza do utworzenia lub otwarcia. Ten ciąg nie uwzględnia wielkości liter.

permissionCheck
RegistryKeyPermissionCheck

Jedna z wartości wyliczenia określająca, czy klucz jest otwarty na potrzeby dostępu do odczytu lub odczytu/zapisu.

Zwraca

Nowo utworzony podklucz lub null, jeśli operacja nie powiodła się. Jeśli dla subkeyokreślono ciąg o zerowej długości, zwracany jest bieżący obiekt RegistryKey.

Atrybuty

Wyjątki

subkey jest null.

Użytkownik nie ma uprawnień wymaganych do utworzenia lub otwarcia klucza rejestru.

permissionCheck zawiera nieprawidłową wartość.

RegistryKey, na którym wywoływana jest ta metoda, jest zamknięta (nie można uzyskać dostępu do zamkniętych kluczy).

Nie można zapisać RegistryKey; na przykład nie został otwarty jako klucz zapisywalny lub użytkownik nie ma niezbędnych praw dostępu.

Poziom zagnieżdżania przekracza 510.

-lub-

Wystąpił błąd systemu, taki jak usunięcie klucza lub próba utworzenia klucza w katalogu głównym LocalMachine.

Uwagi

Aby wykonać tę akcję, użytkownik musi mieć uprawnienia na tym poziomie i poniżej w hierarchii rejestru.

Przestroga

Nie ujawniaj RegistryKey obiektów w taki sposób, że złośliwy program może utworzyć tysiące bez znaczenia podklucze lub pary klucz/wartość. Na przykład nie zezwalaj obiektom wywołującym na wprowadzanie dowolnych kluczy lub wartości.

Aby można było użyć metody OpenSubKey, musisz mieć wystąpienie klasy RegistryKey. Aby uzyskać wystąpienie RegistryKey, użyj jednego ze statycznych elementów członkowskich klasy Registry.

Zobacz też

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.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)

Źródło:
RegistryKey.cs

Tworzy nowy podklucz lub otwiera istniejący podklucz z określonym dostępem. Dostępne od programu .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);

Parametry

subkey
String

Nazwa lub ścieżka podklucza do utworzenia lub otwarcia. Ten ciąg nie uwzględnia wielkości liter.

writable
Boolean

true wskazać, że nowy podklucz jest zapisywalny; w przeciwnym razie false.

Zwraca

Nowo utworzony podklucz lub null, jeśli operacja nie powiodła się. Jeśli dla subkeyokreślono ciąg o zerowej długości, zwracany jest bieżący obiekt RegistryKey.

Atrybuty

Wyjątki

subkey jest null.

Użytkownik nie ma uprawnień wymaganych do utworzenia lub otwarcia klucza rejestru.

Nie można zapisać bieżącego RegistryKey; na przykład nie został otwarty jako klucz zapisywalny lub użytkownik nie ma niezbędnych praw dostępu.

Poziom zagnieżdżania przekracza 510.

-lub-

Wystąpił błąd systemu, taki jak usunięcie klucza lub próba utworzenia klucza w katalogu głównym LocalMachine.

Uwagi

Aby wykonać tę akcję, użytkownik musi mieć uprawnienia na tym poziomie i poniżej w hierarchii rejestru.

Przestroga

Nie ujawniaj RegistryKey obiektów w taki sposób, że złośliwy program może utworzyć tysiące bez znaczenia podklucze lub pary klucz/wartość. Na przykład nie zezwalaj obiektom wywołującym na wprowadzanie dowolnych kluczy lub wartości.

Aby można było użyć metody CreateSubKey, musisz mieć wystąpienie klasy RegistryKey. Aby uzyskać wystąpienie RegistryKey, użyj jednego ze statycznych elementów członkowskich klasy Registry.

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.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)

Źródło:
RegistryKey.cs

Tworzy nowy podklucz lub otwiera istniejący podklucz dostępu do zapisu przy użyciu określonej opcji sprawdzania uprawnień i zabezpieczeń rejestru.

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

Parametry

subkey
String

Nazwa lub ścieżka podklucza do utworzenia lub otwarcia. Ten ciąg nie uwzględnia wielkości liter.

permissionCheck
RegistryKeyPermissionCheck

Jedna z wartości wyliczenia określająca, czy klucz jest otwarty na potrzeby dostępu do odczytu lub odczytu/zapisu.

registrySecurity
RegistrySecurity

Zabezpieczenia kontroli dostępu dla nowego klucza.

Zwraca

Nowo utworzony podklucz lub null, jeśli operacja nie powiodła się. Jeśli dla subkeyokreślono ciąg o zerowej długości, zwracany jest bieżący obiekt RegistryKey.

Atrybuty

Wyjątki

subkey jest null.

Użytkownik nie ma uprawnień wymaganych do utworzenia lub otwarcia klucza rejestru.

permissionCheck zawiera nieprawidłową wartość.

RegistryKey, na którym wywoływana jest ta metoda, jest zamknięta (nie można uzyskać dostępu do zamkniętych kluczy).

Nie można zapisać bieżącego RegistryKey; na przykład nie został otwarty jako klucz zapisywalny lub użytkownik nie ma niezbędnych praw dostępu.

Poziom zagnieżdżania przekracza 510.

-lub-

Wystąpił błąd systemu, taki jak usunięcie klucza lub próba utworzenia klucza w katalogu głównym LocalMachine.

Uwagi

Metoda CreateSubKey tworzy klucz rejestru, który ma kontrolę dostępu określoną przez parametr registrySecurity. Zwrócony obiekt RegistryKey reprezentuje klucz rejestru, ale ten obiekt nie jest ograniczony przez kontrolę dostępu określoną w parametrze registrySecurity.

Jeśli permissionCheck jest RegistryKeyPermissionCheck.ReadWriteSubTree, klucz jest otwarty na potrzeby dostępu do odczytu/zapisu. Jeśli permissionCheck jest RegistryKeyPermissionCheck.ReadSubTree, klucz zostanie otwarty w celu uzyskania dostępu do odczytu.

W celu zapewnienia zgodności z poprzednimi wersjami klucz jest otwarty do odczytu i zapisu, jeśli permissionCheck jest RegistryKeyPermissionCheck.Default, a klucz nadrzędny ma również RegistryKeyPermissionCheck.Default. Jeśli klucz nadrzędny ma jakiekolwiek inne ustawienie, stan odczytu/zapisu jest kontrolowany przez ustawienie klucza nadrzędnego.

Aby wykonać tę akcję, użytkownik musi mieć uprawnienia na tym poziomie i poniżej w hierarchii rejestru.

Przestroga

Nie ujawniaj RegistryKey obiektów w taki sposób, że złośliwy program może utworzyć tysiące bez znaczenia podklucze lub pary klucz/wartość. Na przykład nie zezwalaj obiektom wywołującym na wprowadzanie dowolnych kluczy lub wartości.

Aby można było użyć metody OpenSubKey, musisz mieć wystąpienie klasy RegistryKey. Aby uzyskać wystąpienie RegistryKey, użyj jednego ze statycznych elementów członkowskich klasy Registry.

Zobacz też

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.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)

Źródło:
RegistryKey.cs

Tworzy nowy podklucz lub otwiera istniejący podklucz z określonym dostępem. Dostępne od programu .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);

Parametry

subkey
String

Nazwa lub ścieżka podklucza do utworzenia lub otwarcia. Ten ciąg nie uwzględnia wielkości liter.

writable
Boolean

true wskazać, że nowy podklucz jest zapisywalny; w przeciwnym razie false.

options
RegistryOptions

Opcja rejestru do użycia.

Zwraca

Nowo utworzony podklucz lub null, jeśli operacja nie powiodła się. Jeśli dla subkeyokreślono ciąg o zerowej długości, zwracany jest bieżący obiekt RegistryKey.

Atrybuty

Wyjątki

subkey jest null.

options nie określa prawidłowej opcji.

Użytkownik nie ma uprawnień wymaganych do utworzenia lub otwarcia klucza rejestru.

Nie można zapisać bieżącego RegistryKey; na przykład nie został otwarty jako klucz zapisywalny lub użytkownik nie ma niezbędnych praw dostępu.

Poziom zagnieżdżania przekracza 510.

-lub-

Wystąpił błąd systemu, taki jak usunięcie klucza lub próba utworzenia klucza w katalogu głównym LocalMachine.

Uwagi

Aby wykonać tę akcję, użytkownik musi mieć uprawnienia na tym poziomie i poniżej w hierarchii rejestru.

Przestroga

Nie ujawniaj RegistryKey obiektów w taki sposób, że złośliwy program może utworzyć tysiące bez znaczenia podklucze lub pary klucz/wartość. Na przykład nie zezwalaj obiektom wywołującym na wprowadzanie dowolnych kluczy lub wartości.

Aby można było użyć metody CreateSubKey, musisz mieć wystąpienie klasy RegistryKey. Aby uzyskać wystąpienie RegistryKey, użyj jednego ze statycznych elementów członkowskich klasy Registry.

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.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)

Źródło:
RegistryKey.cs

Tworzy podklucz lub otwiera podklucz na potrzeby dostępu do zapisu przy użyciu określonych opcji sprawdzania uprawnień i rejestru.

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

Parametry

subkey
String

Nazwa lub ścieżka podklucza do utworzenia lub otwarcia.

permissionCheck
RegistryKeyPermissionCheck

Jedna z wartości wyliczenia określająca, czy klucz jest otwarty na potrzeby dostępu do odczytu lub odczytu/zapisu.

registryOptionsoptions
RegistryOptions

Opcja rejestru do użycia; na przykład spowoduje to utworzenie klucza lotnego.

Zwraca

Nowo utworzony podklucz lub null, jeśli operacja nie powiodła się.

Atrybuty

Wyjątki

subkey jest null.

Bieżący obiekt RegistryKey jest zamknięty (nie można uzyskać dostępu do zamkniętych kluczy).

Nie można zapisać bieżącego obiektu RegistryKey; na przykład nie został otwarty jako klucz zapisywalny lub użytkownik nie ma wymaganych praw dostępu.

Poziom zagnieżdżania przekracza 510.

-lub-

Wystąpił błąd systemowy, taki jak usunięcie klucza lub próba utworzenia klucza w katalogu głównym LocalMachine.

Użytkownik nie ma uprawnień wymaganych do utworzenia lub otwarcia klucza rejestru.

Uwagi

Aby uzyskać bieżący obiekt RegistryKey, określ pusty ciąg ("") dla subkey.

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.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)

Źródło:
RegistryKey.cs

Tworzy podklucz lub otwiera podklucz dostępu do zapisu przy użyciu określonej opcji sprawdzania uprawnień, opcji rejestru i zabezpieczeń rejestru.

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

Parametry

subkey
String

Nazwa lub ścieżka podklucza do utworzenia lub otwarcia.

permissionCheck
RegistryKeyPermissionCheck

Jedna z wartości wyliczenia określająca, czy klucz jest otwarty na potrzeby dostępu do odczytu lub odczytu/zapisu.

registryOptions
RegistryOptions

Opcja rejestru do użycia.

registrySecurity
RegistrySecurity

Zabezpieczenia kontroli dostępu dla nowego podklucza.

Zwraca

Nowo utworzony podklucz lub null, jeśli operacja nie powiodła się.

Atrybuty

Wyjątki

subkey jest null.

Bieżący obiekt RegistryKey jest zamknięty. Nie można uzyskać dostępu do zamkniętych kluczy.

Nie można zapisać bieżącego obiektu RegistryKey; na przykład nie został otwarty jako klucz zapisywalny lub użytkownik nie ma wymaganych praw dostępu.

Poziom zagnieżdżania przekracza 510.

-lub-

Wystąpił błąd systemowy, taki jak usunięcie klucza lub próba utworzenia klucza w katalogu głównym LocalMachine.

Użytkownik nie ma uprawnień wymaganych do utworzenia lub otwarcia klucza rejestru.

Uwagi

Aby uzyskać bieżący obiekt RegistryKey, określ pusty ciąg ("") dla subkey.

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.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