Problem mit der Registry

So könntest du es auslesen :

Code:
HKEY key;
DWORD dwType;
DWORD dwSize=300;
char szString[300];


RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\TEST",0,KEY_READ, &key);
RegQueryValueEx(key,"Passwort",NULL,&dwType,(BYTE *)szString,&dwSize);
RegCloseKey(key);

Das Haus sollte jetzt in szString stehen.

Aber ich weiß nicht genau, wie das ist mit dem REG_SZ... vll musst du das, was du in eine REG_SZ abspeicherst noch mit einer terminierenden 0 versehen.

Aber vll geht es auch schon so
 
Zuletzt bearbeitet:
moin


Wenn RegOpenKey funktioniert hat, wird ein ERROR_SUCCESS zurückgegeben.
Eigentlich so wie du es oben schon gemacht hast nur das du irgendwie == und != vertauscht hast.


mfg
umbrasaxum
 
Zuletzt bearbeitet:
Ich schließe mal wieder aus ".c_str()" das du den Borland C++ Builder verwendest. Wenn es dir also nicht auf Kompilerunabhängigkeit ankommt solltest du dir mal die Hilfe zu TRegistry durchlesen.
 
umbrasaxum hat gesagt.:
moin

Und ich sage dir nochmal das dieser Schluss falsch ist!

Er benutzt nen Microsoft Compiler.

mfg
umbrasaxum

Danke für die Info (schon wieder ;) ). Hab irgendwie deine Antwort auf meinen letzen Post mit dieser Schlussfolgerung nicht mitbekommt -> gelobe aber in Zukunft diese Unterstellungen zu unterlassen ;-]
 
So Leute hab das ausprobiert, aber es wird immer ausgegeben das der key nicht existiert warun denn

HKEY KEY = HKEY_CURRENT_USER;
HKEY key;
DWORD dwType;
DWORD dwSize=300;
char szString[300];

int i;
i = RegOpenKeyEx(KEY, "Software\\Konsole",0,KEY_READ, &key);
RegQueryValueEx(key,"Passwort",NULL,&dwType,(BYTE *)szString,&dwSize);
RegCloseKey(key);


if(i != ERROR_SUCCESS)
{
cout << "Der Key ist da!";
}
else
cout << "Der Key ist nicht da!";
 
moin


Du musst aus if(i != ERROR_SUCCESS) if(i == ERROR_SUCCESS) machen!
Wie ich oben schon geschrieben hab, wird ERROR_SUCCESS zurückgegeben, wenn der Key geöffnet wurden konnte.


mfg
umbrasaxum
 
Zuletzt bearbeitet:
Ist das normal wenn i ausgegeben wird, dass da eine 0 ausgegeben wird, sollte da nicht eine 1 stehen, wenn der Key da ist?

und wegen dem i == ERROR_SUCCESS, das bedeutet ja das i falsch ist und der Key nicht da ist oder
 
moin


und wegen dem i == ERROR_SUCCESS, das bedeutet ja das i falsch ist und der Key nicht da ist oder
Nein eben nicht.
Und ja 0 ist unwahr und alles andere ist wahr. Trotzdem ist das hier so (es ist auch bei vielen anderen Funkltionen so).

Hier mal der ausschnitt aus der MSDN:
Return Values
If the function succeeds, the return value is ERROR_SUCCESS.

If the function fails, the return value is a nonzero error code defined in Winerror.h. You can use the FormatMessage function with the FORMAT_MESSAGE_FROM_SYSTEM flag to get a generic description of the error.


mfg
umbrasaxum
 

Neue Beiträge

Zurück