"HKEY"- Problem, brauch dringend Hilfe
-
Hallo,
ich möchte meine Daten in der Registry abspeichern, so dass sie auch nach der Schließung der Anwendung abgespeichert sind.
Einzelne Variable des Types DWORD kann ich abspeichen mit folgendem Code:
[code] HKEY hkey;
DWORD dwgroesse=0;
DWORD test = 1234;dwgroesse=sizeof(test);
RegOpenKeyEx(HKEY_CURRENT_USER,NULL,0,KEY_SET_VALUE,&hkey);
RegSetValueEx(hkey,"TestSpeicher",NULL,REG_DWORD,
(LPBYTE)test ,dwgroesse);
RegCloseKey(hkey); [/code]Die Daten kann mit Hilfe des folgenden Codes wieder aus dem Speicher holen:
HKEY hkey; DWORD dwtyp=0, dwgroesse=0; DWORD Daten; dwgroesse=sizeof(TelNr); RegOpenKeyEx(HKEY_CURRENT_USER,NULL,0,KEY_READ,&hkey); RegQueryValueEx(hkey,"TestSpeicher",NULL,&dwtyp, (LPBYTE)&Daten,&dwgroesse); Die geholten Daten stehen jetzt unter "Daten".
Mein Problem:
Wenn ich CString-Variable speichere funktioniert das nicht!!!!!
Ich benutze auch bei Abspeicheung statt REG_DWORD auch REG_SZ.Kann mir jemand Beispielcode geben mit dem es geht???
Bin seit zwei Tagen darn, kein Land zu sehen.
Danke
-
Also ich habe es nicht ausprobiert, aber wenn du in RegSetValueEx anstatt REG_DWORD REG_SZ nimmst sollte das klappen
-
Hi,
ich denke dein Problem ist der Zeiger auf dein Cstring-Objekt.Da gibts ne Methode getbuffer.
probier mal (BYTE*)deinString.GetBuffer(0) als Pointer zu übergeben.
Musst du später mit releaseBuffer wieder freigeben!!MfG Spacelord
-
Guck mal in die FAQ!!
-
Leider kann man hier nicht mit CStrings arbeiten und muss auf die unschönen C-Strings zurückgreifen.
Nichts für ungut,aber das Einzige was zu Registry\CString in den FAQ steht,ist dass es mit CString-Objekten nicht funzt!
MfG Spacelord
-
komisch das ich es aber nutzte...
schonmal ans formatieren gedacht??CString test; CRegKey key; char buffer[255]; DWORD dwCount = sizeof(buffer); key.Open(HKEY_LOCAL_MACHINE,"Software\\Bla", KEY_READ); key.QueryValue(buffer,"BlaBlub",&dwCount); //Blablub ist REG_SZ bei mir key.Close(); test = buffer;
DAs funktioniert..