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???!!


Anmelden zum Antworten