次の方法で共有


方法: Windows レジストリからデータを読み込む (C++/CLI)

CurrentUser キーを使用して、Windows レジストリからデータを読み込む方法を次のコード例に示します。最初に、サブキーは GetSubKeyNames のメソッドを使用して列挙され、特定のサブキーは OpenSubKey のメソッドを使用して開きます。ルート キー同様、各サブキーは RegistryKey クラスで表されます。最後に、新しい RegistryKey オブジェクトを使用してキーと値のペアが一覧表示されます。

df4afx57.collapse_all(ja-jp,VS.110).gifコード

// registry_read.cpp
// compile with: /clr
using namespace System;
using namespace Microsoft::Win32;

int main( )
{
   array<String^>^ key = Registry::CurrentUser->GetSubKeyNames( );

   Console::WriteLine("Subkeys within CurrentUser root key:");
   for (int i=0; i<key->Length; i++)
   {
      Console::WriteLine("   {0}", key[i]);
   }

   Console::WriteLine("Opening subkey 'Identities'...");
   RegistryKey^ rk = nullptr;
   rk = Registry::CurrentUser->OpenSubKey("Identities");
   if (rk==nullptr)
   {
      Console::WriteLine("Registry key not found - aborting");
      return -1;
   }

   Console::WriteLine("Key/value pairs within 'Identities' key:");
   array<String^>^ name = rk->GetValueNames( );
   for (int i=0; i<name->Length; i++)
   {
      String^ value = rk->GetValue(name[i])->ToString();
      Console::WriteLine("   {0} = {1}", name[i], value);
   }

   return 0;
}

解説

Registry クラスは、RegistryKey の静的インスタンスの単なるコンテナーです。各インスタンスは、ルート レジストリ ノードを表します。インスタンスは、ClassesRootCurrentConfigCurrentUserLocalMachine、および Users です。

Registry クラスのオブジェクトは、静的オブジェクトであるだけでなく、読み取り専用です。さらに、レジストリ オブジェクトのコンテンツにアクセスするために作成される RegistryKey クラスのインスタンスも読み取り専用です。この動作のオーバーライド例については、「方法: Windows レジストリにデータを書き込む (C++/CLI)」を参照してください。

Registry クラスには、さらに DynDataPerformanceData の 2 つのオブジェクトがあります。この 2 つのオブジェクトは両方とも RegistryKey クラスのインスタンスです。DynData オブジェクトには動的レジストリ情報が含まれています。動的レジストリ情報は、Windows 98 および Windows Me でのみサポートされています。PerformanceData オブジェクトを使用すると、Windows パフォーマンス モニター システムを使用するアプリケーションのパフォーマンス カウンター情報にアクセスできます。PerformanceData ノードは、実際にはレジストリに格納されず、 Regedit.exe を使用して表示できない情報を表します。

参照

概念

方法: Windows レジストリにデータを書き込む (C++/CLI)

その他の技術情報

Windows の操作 (C++/CLI)

Visual C++ での .NET プログラミング