方法: Windows レジストリからデータを読み込む (C++/CLI)
CurrentUser キーを使用して、Windows レジストリからデータを読み込む方法を次のコード例に示します。 まず、GetSubKeyNames メソッドを使用してサブキーを一覧表示し、次に、OpenSubKey メソッドを使用して Identities サブキーを開きます。 ルート キー同様、各サブキーは RegistryKey クラスで表されます。 最後に、新しい RegistryKey オブジェクトを使用してキーと値のペアが一覧表示されます。
例
コード
// 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 の静的インスタンスの単なるコンテナーです。 各インスタンスは、ルート レジストリ ノードを表します。 インスタンスは、ClassesRoot、CurrentConfig、CurrentUser、LocalMachine、および Users です。
Registry クラスのオブジェクトは、静的オブジェクトであるだけでなく、読み取り専用です。 さらに、レジストリ オブジェクトのコンテンツにアクセスするために作成される RegistryKey クラスのインスタンスも読み取り専用です。 この動作のオーバーライド例については、「方法: Windows レジストリにデータを書き込む (C++/CLI)」を参照してください。
Registry クラスには、さらに DynData と PerformanceData の 2 つのオブジェクトがあります。 この 2 つのオブジェクトは両方とも RegistryKey クラスのインスタンスです。 DynData オブジェクトには動的レジストリ情報が含まれています。動的レジストリ情報は、Windows 98 および Windows Me でのみサポートされています。 PerformanceData オブジェクトを使用すると、Windows パフォーマンス モニター システムを使用するアプリケーションのパフォーマンス カウンター情報にアクセスできます。 PerformanceData ノードは、実際にはレジストリに格納されていない情報を表しているため、Regedit.exe を使って表示することはできません。
参照
概念
方法: Windows レジストリにデータを書き込む (C++/CLI)