Problem mit der Registry

partitionist

Erfahrenes Mitglied
Ich hab eine Eingabe die ein String einliest und diesen in die Registry reinschreibt

...
string passwd;
...
...
RegSetValueEx(hkey, name, 0, REG_SZ, passwd.c_str(), passwd.length());

Mein Prob ist das der String im 5. Parameter ein Fehler auswirft, da ein unsigned char *
erforderlich ist. Wie kann ich den String umwandeln den mit c_str() gehts nicht.
 
moin


Vielleicht:
RegSetValueEx(hkey, name, 0, REG_SZ, (unsigned char *)passwd.c_str(), passwd.length());
oder
RegSetValueEx(hkey, name, 0, REG_SZ, (unsigned char)passwd.c_str(), passwd.length());


mfg
umbrasaxum
 
Jo THX, und wie kann ich überprüfen ob ein Schlüssel vorhanden ist oder nicht?
Hab Sachen im Netz gefunden wie z.B RegOpenKeyEx() aber wie kriege ich ein Wert raus?
 
moin


Ohne nachgtucken wüsste ich das auch nciht so, aber das Thema gab es hier schon.


mfg
umbrasaxum
 
Hab was gefunden:

if(RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft",0,
KEY_ALL_ACCESS,&hkey)!=ERROR_SUCCESS)
cout << "Ist da";

else cout << "Nicht da";

aber wieso gibt er immer das zweite aus obwohl der Schlüssel Microsoft da ist?
 
Also dieser Code funktioniert:

Code:
  #include <iostream>
  #include <windows.h>
  #include <string>
  
  
  using namespace std;
  
  int main()
  {
  	string passwd = "Haus";
  
  	HKEY hkey;
  	HKEY KEY = HKEY_CURRENT_USER;
  
  	char place[100]= {"Software\\TEST"};
  	char name[100]= {"Passwort"};
  		
  
  	RegCreateKey(KEY, place, &hkey); 
  	RegOpenKeyEx(KEY,(LPCTSTR)place,0, KEY_ALL_ACCESS,&hkey); 
  	RegSetValueEx(hkey, name, 0, REG_SZ, (unsigned char *)passwd.c_str(), passwd.length());
  	RegCloseKey(hkey);
  
  return 0;
  }


Wie kriege ich den String "Haus" wenn ich ihn aus der Registry auslesen will, oben hab ich ja mein Prob beschrieben wegen dem Zugriff auf den Key mit RegOpenKeyEx(), aber es werden keine Schlüssel gefunden obwohl sie existieren. HIFLE
 

Neue Beiträge

Zurück