RegistryKey クラス

定義

Windows レジストリのキー レベル ノードを表します。 このクラスはレジストリをカプセル化します。

public ref class RegistryKey sealed : MarshalByRefObject, IDisposable
public ref class RegistryKey sealed : IDisposable
public sealed class RegistryKey : MarshalByRefObject, IDisposable
public sealed class RegistryKey : IDisposable
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class RegistryKey : MarshalByRefObject, IDisposable
type RegistryKey = class
    inherit MarshalByRefObject
    interface IDisposable
type RegistryKey = class
    interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type RegistryKey = class
    inherit MarshalByRefObject
    interface IDisposable
Public NotInheritable Class RegistryKey
Inherits MarshalByRefObject
Implements IDisposable
Public NotInheritable Class RegistryKey
Implements IDisposable
継承
継承
RegistryKey
属性
実装

次のコード例は、 の下にサブキーを作成し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 、 クラスの静的メンバーの 1 つを使用 Registry します。

レジストリは、オペレーティング システムとコンピューター上のアプリケーションの情報の中央リポジトリとして機能します。 レジストリは、その中に格納されている要素の論理的な順序に基づいて階層形式で編成されます (この階層の基本レベルの項目については、を Registry 参照してください)。 レジストリに情報を格納する場合は、格納されている情報の種類に基づいて適切な場所を選択します。 他のアプリケーションによって作成された情報が破棄されるのを避けるようにしてください。これにより、これらのアプリケーションが予期しない動作を引き起こす可能性があります。また、独自のアプリケーションに悪影響を及ぼす可能性があります。

重要

この型は IDisposable インターフェイスを実装します。 型の使用が完了したら、直接的または間接的に型を破棄する必要があります。 直接的に型を破棄するには、try/catch ブロック内で Dispose メソッドを呼び出します。 間接的に型を破棄するには、using (C# の場合) または Using (Visual Basic 言語) などの言語構成要素を使用します。 詳細については、IDisposable インターフェイスに関するトピック内の「IDisposable を実装するオブジェクトの使用」セクションを参照してください。

レジストリ キーは、レジストリ内の組織の基本単位であり、レジストリ内のフォルダーとエクスプローラー。 フォルダーがサブフォルダーを持つ場合と同様に、特定のキーにサブキーを設定できます。 ユーザーが適切なアクセス許可を持ち、キーが基本キーまたは基本キーの直下のレベルではない限り、各キーを削除できます。 各キーには複数の値を関連付け (ファイルと比較できます)、情報の格納に使用されます (コンピューターにインストールされているアプリケーションに関する情報など)。 各値には、必要に応じて取得または更新できる特定の情報が 1 つ保持されます。 たとえば、キー HKEY_LOCAL_MACHINE\Software の下に会社の を作成し、会社が作成する各アプリケーションのサブキー RegistryKey を作成できます。 各サブキーには、色の設定、画面の場所とサイズ、認識されたファイル拡張子など、そのアプリケーションに固有の情報が保持されます。

レジストリに格納されている情報は、他のアプリケーションやユーザーが使用できます。そのため、セキュリティ データや重要なアプリケーション情報を格納するために使用すべきではありません。

注意事項

悪意のあるプログラムが何千もの無意味なサブキーまたはキーと値のペアを作成する可能性がある方法でオブジェクト RegistryKey を公開しません。 たとえば、呼び出し元に任意のキーまたは値の入力を許可しません。

.NET Framework 4 より、レジストリ キーの長さは 255 文字に制限されなくなりました。

プロパティ

Handle

現在の SafeRegistryHandle オブジェクトによってカプセル化されているレジストリ キーを表す RegistryKey オブジェクトを取得します。

Name

キーの名前を取得します。

SubKeyCount

現在のキーのサブキーの数を取得します。

ValueCount

キーの値の数を取得します。

View

レジストリ キーの作成に使用されたビューを取得します。

メソッド

Close()

キーを閉じ、キーの内容が変更されている場合はディスクへフラッシュします。

CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。

(継承元 MarshalByRefObject)
CreateSubKey(String)

新しいサブキーを作成するか、または既存のサブキーを書き込みアクセスで開きます。

CreateSubKey(String, Boolean)

指定したアクセス権を持つ、新しいサブキーを作成するか、既存のサブキーを開きます。 .NET Framework 4.6 以降で使用できます。

CreateSubKey(String, Boolean, RegistryOptions)

指定したアクセス権を持つ、新しいサブキーを作成するか、既存のサブキーを開きます。 .NET Framework 4.6 以降で使用できます。

CreateSubKey(String, RegistryKeyPermissionCheck)

指定されたアクセス許可チェック オプションを使用して、新しいサブキーを作成するか、既存のサブキーを書き込みアクセスで開きます。

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions)

指定されたアクセス許可チェック オプションおよびレジストリ オプションを使用して、サブキーを作成するか、サブキーを書き込みアクセスで開きます。

CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions, RegistrySecurity)

指定されたアクセス許可チェック オプション、レジストリ オプション、およびレジストリ セキュリティを使用して、サブキーを作成するか、サブキーを書き込みアクセスで開きます。

CreateSubKey(String, RegistryKeyPermissionCheck, RegistrySecurity)

指定されたアクセス許可チェック オプションおよびレジストリ セキュリティを使用して、新しいサブキーを作成するか、既存のサブキーを書き込みアクセスで開きます。

DeleteSubKey(String)

指定したサブキーを削除します。

DeleteSubKey(String, Boolean)

指定したサブキーを削除します。また、サブキーが見つからない場合に例外を発生させるかどうかを指定します。

DeleteSubKeyTree(String)

サブキーとその子サブキーを再帰的に削除します。

DeleteSubKeyTree(String, Boolean)

指定されたサブキーとその子サブキーを再帰的に削除します。サブキーが見つからなかった場合に例外を発生させるかどうかを指定します。

DeleteValue(String)

指定した値をこのキーから削除します。

DeleteValue(String, Boolean)

指定した値をこのキーから削除します。また、値が見つからない場合に例外を発生させるかどうかを指定します。

Dispose()

RegistryKey クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Finalize()

キーを閉じ、内容が変更されている場合はディスクへフラッシュします。

Flush()

指定したオープン レジストリ キーのすべての属性をこのレジストリへ書き込みます。

FromHandle(SafeRegistryHandle)

指定されたハンドルからレジストリ キーを作成します。

FromHandle(SafeRegistryHandle, RegistryView)

指定されたハンドルおよびレジストリ ビュー設定に基づいてレジストリ キーを作成します。

GetAccessControl()

現在のレジストリ キーのアクセス制御セキュリティを返します。

GetAccessControl(AccessControlSections)

現在のレジストリ キーについて、指定されたセクションのアクセス制御セキュリティを返します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetLifetimeService()
互換性のために残されています。

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
GetSubKeyNames()

すべてのサブキーの名前が格納されている文字列の配列を取得します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
GetValue(String)

指定した名前に関連付けられている値を取得します。 名前/値ペアがレジストリに存在しない場合、null を返します。

GetValue(String, Object)

指定した名前に関連付けられている値を取得します。 名前が見つからない場合、設定されている既定値を返します。

GetValue(String, Object, RegistryValueOptions)

指定した名前に関連付けられている値を、取得オプションを指定して取得します。 名前が見つからない場合、設定されている既定値を返します。

GetValueKind(String)

指定した名前に関連付けられた値のレジストリ データ型を取得します。

GetValueNames()

このキーに関連付けられているすべての値の名前が格納されている文字列の配列を取得します。

InitializeLifetimeService()
互換性のために残されています。

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。

(継承元 MarshalByRefObject)
OpenBaseKey(RegistryHive, RegistryView)

ローカル コンピューター上にある要求されたキーを表す新しい RegistryKey を、指定されたビューで開きます。

OpenRemoteBaseKey(RegistryHive, String)

リモート コンピューター上にある要求されたキーを表す新しい RegistryKey を開きます。

OpenRemoteBaseKey(RegistryHive, String, RegistryView)

リモート コンピューター上にある要求されたキーを表す新しいレジストリ キーを、指定されたビューで開きます。

OpenSubKey(String)

サブキーを読み取り専用で取得します。

OpenSubKey(String, Boolean)

指定したサブキーを取得します。また、キーに書き込みアクセスを適用するかどうかを指定します。

OpenSubKey(String, RegistryKeyPermissionCheck)

指定したサブキーを読み取りアクセスまたは読み取り/書き込みアクセス用に取得します。

OpenSubKey(String, RegistryKeyPermissionCheck, RegistryRights)

指定したアクセス権を要求して、指定したサブキーを読み取りアクセスまたは読み取り/書き込みアクセス用に取得します。

OpenSubKey(String, RegistryRights)

指定された名前とアクセス権を持つサブキーを取得します。 .NET Framework 4.6 以降で使用できます。

SetAccessControl(RegistrySecurity)

既存のレジストリ キーに Windows アクセス制御セキュリティを適用します。

SetValue(String, Object)

指定した名前/値ペアを設定します。

SetValue(String, Object, RegistryValueKind)

指定したレジストリ データ型を使用して、レジストリ キーに名前/値ペアの値を設定します。

ToString()

このキーの文字列形式を取得します。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

IDisposable.Dispose()

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

現在のキーに対して Close() を実行します。

拡張メソッド

GetAccessControl(RegistryKey)

レジストリ キーのセキュリティ情報を返します。

GetAccessControl(RegistryKey, AccessControlSections)

レジストリ キーのセキュリティ情報を返します。

SetAccessControl(RegistryKey, RegistrySecurity)

既存のレジストリ キーのセキュリティ属性を変更します。

適用対象

こちらもご覧ください