Registry Problem
-
Vorweg: ich habe zwar die Such-Funktion verwendet, jedoch keine passenden Threads gefunden. Also fang ich einen neuen an.
int err; HKEY phkResult; err = RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Lotus\\Notes",0,KEY_READ,&phkResult); if(err == 0) { // RegQueryValueEx() etc. }
Mein Problem ist, dass err nicht 0, sondern 57 ist und laut winerror.h ist code 57: "A network adapter hardware error occured"...
Das wunderliche an der Angelegenheit ist aber, dass es hin und wieder funktioniert, wenn ich die Variable err weglasse und RegOpenKeyEx() direkt in die if-Anweisung plaziere....manchmal aber nur....
Wenn jemand Ideen und Ratschläge hätte, ich wäre sehr dankbar
-
Habe auch Notes auf'm Rechner, ne 1:1-Kopie Deines Codes gibt ErrorCode 0 zurück!
Vielleicht stimmt irgendwas mit den Rechten nicht
-
also mit den rechten stimmt alles....
Das Problem - ich hätts vorher schon erwähnen sollen - liegt bei "SOFTWARE\\Lotus\\Notes". Im Original steht nämlich nicht dieser String als 2. Parameter (dann funktionierts), sondern folgendes:
(char *)query_reg[j].start+6
Wenn ich hier debugge (VC++), dann schreibt er mir aber für diesen (char
"SOFTWARE\\Lotus\\Notes" hin. Offensichtlich macht das aber nur der Debugger und nicht das Programm, also wie könnte ich anders die Variable beschreiben??
Die variable start aus dem struct query_reg ist vom typ (unsigned long
Das Byte nach "...\\Notes" hat den wert 0x0, schließt also den String ab.Gibt es andere Möglichkeiten diese Speicheradresse als (char
zu übergeben, so dass nicht nur der Debugger, sondern auch mein Programm "SOFTWARE\\Lotus\\Notes" draus macht???!!