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)