Registry in cpp

  • Themenstarter Themenstarter felikz
  • Beginndatum Beginndatum
F

felikz

Guest
Hi Leude!

Ich habe eine Frage/Problem zu nem cpp Projekt von mir.
Also das Programm schreibt ein paar Sachen in die Reg und später soll es überprüfen ob die vorher geschriebenen Values denn auch da sin. Falls ja, soll es die Namen Und die Werte in eine Datei schreiben oder wenigstens am Bildschirm ausgeben. Das setzen und erstellen der Werte geht, aber das lesen und ausgeben am Screen net. Also bei mir sieht das so aus.

HKEY aaKey;
char chkvalue;
int chksize;

RegOpenKeyEx(HKEY_LOCAL_MACHINE,(LPCTSTR) "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_ALL_ACCESS,&aaKey);

RegQueryValueEx(aaKey, "blabla1",NULL,NULL,(unsigned char *)&chkvalue,unsigned long *)&chksize);

RegCloseKey(aaKey);

printf("%s",chksize);
printf("%c",chkvalue);


Irgendwie kann er weder den Wert noch die Größe anzeigen, es kommt immer n error.

Wie kann ich die Werte denn mit printf() ausgeben???

Danke im Vorraus
 
so funktionierts:
Code:
#include <Windows.h>
#include <iostream>

using namespace std;

#define BUFSIZE 100

int main() 
{
	HKEY aaKey;
	char chkvalue[BUFSIZE];
	DWORD chksize=BUFSIZE;
	LONG lRet;

	RegOpenKeyEx(HKEY_LOCAL_MACHINE,(LPCTSTR) "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_ALL_ACCESS,&aaKey);
	lRet = RegQueryValueEx(aaKey, "blabla1",NULL,NULL, (LPBYTE) chkvalue, &chksize);
	RegCloseKey(aaKey);

	if( (lRet != ERROR_SUCCESS) || (chksize > BUFSIZE) )
		cout << "Fehler (nicht gefunden?! buffer zu klein?!)" << endl;
	else
		cout << chkvalue << " (size: " << chksize << ")" << endl;

	return 0;
}
btw wenn du c++ benutzt, dann nimm doch auch die c++ ausgabe funktion cout und nicht die C ausgabe funktion printf.
 
DANKE SEHR :-)

wirklich vielen dank für die schnelle und v.a. GUTE hilfe.
mein problem is jetzt gelöst!!!!!!

wirklich vielen vielen dank!!!!!!!!!!!!!!

ps: ich benutze printf() weil ich es irgendwie besser finde, weil man das format ändern kann.
 
ps: ich benutze printf() weil ich es irgendwie besser finde, weil man das format ändern kann.
falls das denn wirklich mal nötig sein sollte, dann lässt sich das auch ganz einfach mit cout machen... zum einen bietet das objekt selbst schon eine möglichkeiten zur manipulation, zum anderen gibt es noch die header-datei iomanip. damit lässt sich noch weit mehr anstellen...
 
Zurück
Oben