次の方法で共有


Registry クラス

レジストリの値とサブキーにアクセスするベース Registrykeys を提供します。

この型のすべてのメンバの一覧については、Registry メンバ を参照してください。

System.Object
   Microsoft.Win32.Registry

NotInheritable Public Class Registry
[C#]
public sealed class Registry
[C++]
public __gc __sealed class Registry
[JScript]
public class Registry

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

このクラスには、Windows が実行されているコンピュータのレジストリで見つかった標準ルート キーのセットがあります。レジストリは、アプリケーション、ユーザー、既定のシステム設定に関する情報を格納する機能です。たとえば、アプリケーションを終了した後も保持する必要のある情報をレジストリに格納しておくと、そのアプリケーションの再読み込み時に同じ情報へアクセスできます。たとえば、色の設定、画面の位置、ウィンドウのサイズなどを格納できます。このような情報をユーザー別に制御するには、情報をレジストリ内の異なる位置に格納します。

Registry により公開される基本 (ルート) RegistryKey インスタンスは、レジストリでのサブキーと値の基本的な格納機構を表します。レジストリの内容はキーの存在に依存しているため、キーはすべて読み取り専用です。Registry により公開公開されるキーは次のとおりです。

  • CurrentUser
    ユーザー設定に関する情報が格納されています。
  • LocalMachine
    ローカル コンピュータの構成情報が格納されます。
  • ClassesRoot
    型およびクラスとそのプロパティに関する情報が格納されます。
  • Users
    既定のユーザー構成に関する情報が格納されます。
  • PerformanceData
    ソフトウェア コンポーネントのパフォーマンスに関する情報が格納されます。
  • CurrentConfig
    各ユーザー共通のハードウェア情報が格納されます。
  • DynData
    動的データが格納されます。

レジストリから格納または取得する情報のルート キーを確認したら、 RegistryKey クラスを使用してサブキーを追加または削除したり、特定のキーの値を操作したりできます。

プラグ アンド プレイ インターフェイスを使用すると、ハードウェア デバイスの情報を自動的にレジストリに登録できます。デバイス ドライバをインストールするソフトウェアは、標準 API へ書き込むことで、レジストリに情報を登録します。

使用例

[Visual Basic, C#, C++] このキーのサブキーを取得し、これらのサブキーの名前を画面に出力する方法の例を次に示します。必要な特定のサブキーのインスタンスを作成するには、 OpenSubKey メソッドを使用します。次に、 RegistryKey で別の演算を使用して、そのキーを操作します。

 
Imports System
Imports Microsoft.Win32

Class Reg
    
    Public Shared Sub Main()
        
        ' Create a RegistryKey, which will access the HKEY_USERS
        ' key in the registry of this machine.
        Dim rk As RegistryKey = Registry.Users
        
        ' Print out the keys.
        PrintKeys(rk)
    End Sub    
    
    Shared Sub PrintKeys(rkey As RegistryKey)
        
        ' Retrieve all the subkeys for the specified key.
        Dim names As String() = rkey.GetSubKeyNames()
        
        Dim icount As Integer = 0
        
        Console.WriteLine("Subkeys of " & rkey.Name)
        Console.WriteLine("-----------------------------------------------")
        
        ' Print the contents of the array to the console.
        Dim s As String
        For Each s In  names
            Console.WriteLine(s)
            
            ' The following code puts a limit on the number
            ' of keys displayed.  Comment it out to print the
            ' complete list.
            icount += 1            
            If icount >= 10 Then
                Exit For
            End If
        Next s
    End Sub
End Class

[C#] 
using System;
using Microsoft.Win32;

class Reg {
    public static void Main() {

        // Create a RegistryKey, which will access the HKEY_USERS
        // key in the registry of this machine.
        RegistryKey rk = Registry.Users;

        // Print out the keys.
        PrintKeys(rk);
    }

    static void PrintKeys(RegistryKey rkey) {

        // Retrieve all the subkeys for the specified key.
        String [] names = rkey.GetSubKeyNames();

        int icount = 0;

        Console.WriteLine("Subkeys of " + rkey.Name);
        Console.WriteLine("-----------------------------------------------");

        // Print the contents of the array to the console.
        foreach (String s in names) {
            Console.WriteLine(s);

            // The following code puts a limit on the number
            // of keys displayed.  Comment it out to print the
            // complete list.
            icount++;
            if (icount >= 10)
                break;
        }
    }
}

[C++] 
#using <mscorlib.dll>
using namespace System;
using namespace Microsoft::Win32;

void PrintKeys(RegistryKey* rkey) {

    // Retrieve all the subkeys for the specified key.
    String* names[] = rkey->GetSubKeyNames();

    int icount = 0;

    Console::WriteLine(S"Subkeys of {0}", rkey->Name);
    Console::WriteLine(S"-----------------------------------------------");

    // Print the contents of the array to the console.
    System::Collections::IEnumerator* enum0 = names->GetEnumerator();
    while (enum0->MoveNext())
    {
        String* s = __try_cast<String*>(enum0->Current);
        Console::WriteLine(s);

        // The following code puts a limit on the number
        // of keys displayed.  Comment it out to print the
        // complete list.
        icount++;
        if (icount >= 10)
            break;
    }
}

int main() {

    // Create a RegistryKey, which will access the HKEY_USERS
    // key in the registry of this machine.
    RegistryKey* rk = Registry::Users;

    // Print out the keys.
    PrintKeys(rk);
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: Microsoft.Win32

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

Registry メンバ | Microsoft.Win32 名前空間 | RegistryHive | RegistryKey