Problem Registry & Registrykeys

virom

Grünschnabel
Hallo ich bin gerade dabei ein Programm zu schreiben der bestimmte Werte aus der Registry des OS ausliest. Ich hab auch viele gute Tutorials dazu gefunden. Doch ich habe ein Problem. Es geht (fast) immer darum einen Text auszulesen. Doch bei allen Programmen wird char* also C-Strings verwendet und ich kriege immer nur den ersten Buchstaben angezeigt(von dieser Variable). Hier erstmal ein paar Informationen:

Ich verwende : Microsoft Visual Studio 2005 & Windows XP

und hier der Quellcode:

Code:
#include <windows.h>
#include <iostream>

int main () {

	HKEY hKey;				
	DWORD buffersize = 1024;	
	char* lpData = new char[buffersize];

	RegOpenKey(HKEY_CURRENT_USER, L"Software\\Microsoft\\Internet Explorer\\Main",	&hKey);
	
	RegQueryValueEx(hKey,
					L"Start Page",
					NULL,
					NULL,
					(LPBYTE) lpData,
					&buffersize);
	
	std::cout << "Internet Startseite ist:" << lpData << "\n\n";
	RegCloseKey (hKey);
	
	system("Pause");
	delete lpData;
}

Bitte helft mir, da ich noch ein blutiger Anfänger in C++ bin.
 
Liegt wahrscheinlich daran, dass VS2005 standardmäßig Unicode-Projekte anlegt. Nimm daher mal "TCHAR" statt "char" und für die Ausgabe "wcout" statt "cout".
C++:
HKEY hKey;
DWORD buffersize = 1024;
TCHAR* lpData = new TCHAR[buffersize];

RegOpenKey(HKEY_CURRENT_USER, L"Software\\Microsoft\\Internet Explorer\\Main",  &hKey);

RegQueryValueEx( hKey,
                 L"Start Page",
                 NULL,
                 NULL,
                 (LPBYTE) lpData,
                 &buffersize);

std::wcout << L"Internet Startseite ist:" << lpData << L"\n\n";
RegCloseKey (hKey);
Gruß
MCoder
 
Zuletzt bearbeitet:
Danke funktioniert einwandfrei. Du hast mir wirklich sehr geholfen. Da ich ja noch ein ziemlicher bin was C++ angeht hatte ich wie gesagt keinen Plan was ich machen sollte;)
 
Zurück