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 物件。

例外狀況

subkeynull

使用者沒有建立或開啟登錄機碼的所需權限。

叫用這個方法的 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 物件。

屬性

例外狀況

subkeynull

使用者沒有建立或開啟登錄機碼的所需權限。

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 物件。

屬性

例外狀況

subkeynull

使用者沒有建立或開啟登錄機碼的所需權限。

無法寫入目前的 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 物件。

屬性

例外狀況

subkeynull

使用者沒有建立或開啟登錄機碼的所需權限。

permissionCheck 包含無效的值。

叫用這個方法的 RegistryKey 已經關閉 (關閉的機碼無法存取)。

無法寫入目前的 RegistryKey,原因可能是未將其開啟為可寫入的機碼,或使用者存取權限不足。

巢狀層次超過 510。

-或-

發生系統錯誤,例如刪除機碼或嘗試在 LocalMachine 根中建立機碼。

備註

方法 CreateSubKey 會建立具有 參數所指定訪問控制的 registrySecurity 登錄機碼。 傳 RegistryKey 回的物件代表登錄機碼,但該物件不受 參數中指定的 registrySecurity 訪問控制所限制。

如果 為 permissionCheckRegistryKeyPermissionCheck.ReadWriteSubTree,則會開啟金鑰以進行讀取/寫入存取。 如果 為 permissionCheckRegistryKeyPermissionCheck.ReadSubTree,則會開啟金鑰以供讀取存取。

為了回溯相容性,如果 permissionCheckRegistryKeyPermissionCheck.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 物件。

屬性

例外狀況

subkeynull

options 未指定有效的 Option。

使用者沒有建立或開啟登錄機碼的所需權限。

無法寫入目前的 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

要使用的登錄選項,例如 Volatile 機碼。

傳回

新建立的子機碼,如果作業失敗則為 null

屬性

例外狀況

subkeynull

目前的 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

屬性

例外狀況

subkeynull

目前的 RegistryKey 物件已關閉。 無法存取已關閉的機碼。

無法寫入目前的 RegistryKey 物件,例如不是開啟為可寫入的機碼,或使用者沒有必要的存取權限。

巢狀層次超過 510。

-或-

發生系統錯誤,例如刪除機碼,或是嘗試在 LocalMachine 根目錄中建立機碼。

使用者沒有建立或開啟登錄機碼的所需權限。

備註

若要取得目前的 RegistryKey 物件,請為 subkey指定空字串 (“) 。

適用於