Freigeben über


Gewusst wie: Lesen von Daten aus der Windows-Registrierung (C++/CLI)

Im folgenden Codebeispiel wird der CurrentUser-Schlüssel verwendet, um Daten aus der Windows-Registrierung zu lesen. Zunächst werden die Unterschlüssel mit der GetSubKeyNames-Methode aufgelistet, und anschließend wird der Identities-Unterschlüssel mithilfe der OpenSubKey-Methode geöffnet. Jeder Unterschlüssel wird wie ein Stammschlüssel durch die RegistryKey-Klasse dargestellt. Schließlich werden mit dem neuen RegistryKey-Objekt die Schlüssel/Wert-Paare aufgelistet.

Beispiel

Code

// 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;
}

Hinweise

Die Registry-Klasse ist lediglich ein Container für statische Instanzen von RegistryKey. Jede Instanz stellt einen Stammregistrierungsknoten dar. Die Instanzen sind ClassesRoot, CurrentConfig, CurrentUser, LocalMachine und Users.

Die Objekte innerhalb der Registry-Klasse sind nicht nur statisch, sondern auch schreibgeschützt. Darüber hinaus sind Instanzen der RegistryKey-Klasse, die für den Zugriff auf den Inhalt der Registrierungsobjekte erstellt wurden, ebenfalls schreibgeschützt. Unter Gewusst wie: Schreiben von Daten in die Windows-Registrierung (C++/CLI) finden Sie ein Beispiel, in dem dargestellt wird, wie dieses Verhalten überschrieben werden kann.

In der Registry-Klasse stehen zwei weitere Objekte zur Verfügung: DynData und PerformanceData. Bei beiden Objekten handelt es sich um Instanzen der RegistryKey-Klasse. Das DynData-Objekt enthält dynamische Registrierungsinformationen, die nur unter Windows 98 und Windows Me unterstützt werden. Das PerformanceData-Objekt dient dem Zugriff auf Informationen zu Leistungsindikatoren für Anwendungen, die das Leistungsüberwachungssystem von Windows verwenden. Der PerformanceData-Knoten stellt Informationen dar, die eigentlich nicht in der Registrierung gespeichert sind und aus diesem Grund nicht mit Regedit.exe angezeigt werden können.

Siehe auch

Konzepte

Gewusst wie: Schreiben von Daten in die Windows-Registrierung (C++/CLI)

Weitere Ressourcen

Windows-Vorgänge (C++/CLI)

.NET-Programmierhandbuch