다음을 통해 공유


방법: Windows 레지스트리에서 데이터 읽기

업데이트: 2007년 11월

다음 코드 예제에서는 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, LocalMachineUsers입니다.

Registry 클래스 내의 개체는 정적 개체인 동시에 읽기 전용 개체입니다. 또한 레지스트리 개체의 내용에 액세스하기 위해 작성된 RegistryKey 클래스의 인스턴스도 읽기 전용입니다. 이 동작을 재정의하는 방법의 예제는 방법: Windows 레지스트리에 데이터 쓰기를 참조하십시오.

Registry 클래스에는 DynDataPerformanceData라는 두 가지 개체가 더 있습니다. 이 두 개체는 모두 RegistryKey 클래스의 인스턴스입니다. DynData 개체에는 Windows 98과 Windows Me에서만 지원되는 동적 레지스트리 정보가 들어 있습니다. PerformanceData 개체를 사용하면 Windows 성능 모니터링 시스템을 사용하는 응용 프로그램에 대한 성능 카운터 정보에 액세스할 수 있습니다. PerformanceData 노드는 레지스트리에 실제로 저장되지 않은 정보를 나타내므로 Regedit.exe를 사용하여 볼 수 없습니다.

참고 항목

개념

방법: Windows 레지스트리에 데이터 쓰기

기타 리소스

C++의 Windows 작업

.NET 프로그래밍 가이드