RegQueryMultipleValues ?

athlon

Mitglied
Hi

Ich möchte gerne aus einem Registry Schlüssel alle Werte auslesen.
Soweit mein Englisch das verstanden hat geht das mit RegQueryMultipleValues ?!

Jedoch verstehe ich nicht ganz wie das funktioniert kann mir das vielleciht jemand erklären?

Danke!
 
RegQueryMultipleKeys bringt dir zu einem angegebenen Registryeintrag verschiedene Zusatzinformationen, dh den Wert, den Typ, die Länge des Wertes.

In deinem Fall brauchst du eher RegEnumValue:
Code:
HKEY hKey1;
LONG res;
DWORD dwIndex = 0, dwName, dwData;
char chName[MAX_PATH], chData[MAX_PATH];

RegOpenKeyEx(HKEY_CURRENT_USER,
	"Software\\Ahead\\Nero - Burning Rom\\Settings", //beispielkey aufmachen
	0,
	KEY_ALL_ACCESS,
	&hKey1);

do
{
	dwName = MAX_PATH;
	dwData = MAX_PATH;
	res = RegEnumValue(hKey1,
			dwIndex++,
			chName,  //name wird in chName abgelegt
			&dwName,
			NULL,
			NULL,
			chData, //wert wird in chData abgelegt
			&dwData);
		printf("%s\n", chName);
}
while (res != ERROR_NO_MORE_ITEMS);
RegCloseKey(hKey1);
Das Beispiel listet dir alle Namen aus dem BeispielKey: Ahead\Nero\blabla... auf, wenn du allerdings auch noch die jeweiligen Werte im leserlichen Format ausgeben willst, musst du unterscheiden zwischen REG_SZ, REG_DWORD, etc... dh im Beispiel den 6. Parameter (der hier im Beispiel NULL ist) auschecken, und je nachdem welchen Wert er hat, eine angepasste Formatierung benutzen.
 
error C2664: 'RegEnumValueA' : Konvertierung des Parameters 7 von 'char [260]' in 'unsigned char *' nicht moeglich

also will er rigendwie das dwData nicht :-/
 

Neue Beiträge

Zurück