REG_DWORD Schlüssel auslesen ??



  • Hallo Leute,

    Ich habe Probleme beim auslesen eines REG_DWORD Schlüssels !!

    So hier erst mal mein Code:

    HKEY hKey;
    		unsigned char Data;
    		unsigned long  StringSize;
    		int Ok1,Ok2;
    
    		//               \\skyDSL\\UDPClient\\statistics
    
    		Ok1=RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\TELES\\skyDSL\\UDPClient\\statistics", 0, KEY_READ, &hKey); 
    		Ok2=RegQueryValueEx(hKey, "CurPrio", NULL,NULL, &Data, &StringSize);
    		RegCloseKey(hKey);
    

    Problem ist das er keinen fehler zurück gibt !!
    Trozdem gabe ich in Data nach dem auselesn nur einen Schwartzen Balken und nicht den Wert 2.

    Kann mir da einer Helfen ???

    Danke Coolsero



  • Servus,

    probiers mal so:

    HKEY hKey; 
    TCHAR cData[255]; 
    memset(cData, 0, sizeof(cData));
    DWORD  StringSize = 255; 
    int Ok1,Ok2; 
    
    Ok1=RegOpenKeyEx (HKEY_LOCAL_MACHINE, "SOFTWARE\\TELES\\skyDSL\\UDPClient\\statistics", 0, KEY_READ, &hKey);  
    Ok2=RegQueryValueEx(hKey, "CurPrio", NULL,NULL, (LPBYTE)cData, &StringSize); 
    RegCloseKey(hKey);
    

    den Rest lässte so...
    das sollte funzen denke ich mal 😃

    *winke*
    Hellsgore



  • Hallo Hellsgore,

    Habe deinen Code mal Probiert aber habe immer noch das gleiche Problem !!
    Habe das gnaze mal im Debug laufen lassen und ein Scree Shot gemacht !! Schau dir das mal bitte an !!

    [url]http:\\www.csstoeber.de\nfc.gif[/url]

    Wie du siehst steht zwar vorne die 1 aber als string habe ich nur diesen balken !! und den habe ich bei jeder Zahl !! Ich kann so also schlecht eine if(gr == "2") machen !!

    Danke Coolsero



  • mhmm???
    Wasn des?
    Was sollte denn da drin stehen? Hast du den Schlüssel richtig benannt? Ist der Value richtig?

    Ich habe das hier getestet und das funzt einwandfrei. Wieviele Zeichen sollten denn da drin stehen bzw. Was sollte da drin stehen? Ist das vielleicht keine Zeichenfolge sondern ein DWORD das du auslesen willst?

    Hellsgore



  • Hallo,

    So habe auch mal nen bild vom Regedit gemacht !!

    [url]http:\\www.csstoeber.de\reg.gif[/url]

    Gruß Coolsero



  • Achso...
    du holst dir ein DWORD
    dann geht das anders
    GUCKST DU:

    HKEY hKey; 
    DWORD dwSize = sizeof (DWORD);
    DWORD dwDest;
    int Ok1,Ok2; 
    
    Ok1=RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Test", 0, KEY_READ, &hKey);  
    Ok2=RegQueryValueEx(hKey, "Test", NULL, NULL, (LPBYTE)&dwDest, &dwSize); 
    RegCloseKey(hKey);
    

    Änderst nur noch die Strings für die Reg um.

    *winke*
    Hellsgore



  • *ATOMROFL*

    ich sehe ja gerade die Überschrift des Threads
    da stehts ja in allen Farben gut zu lesen:

    REG_DWORD Schlüssel auslesen ??

    😃
    Mein Fehler... lesen will gelernt sein *g*

    *winke*



  • Hallo,

    Danke das hat gefunst !! 😃 😃 😃

    So jetzt wollte ich danach den Schlüssel noch löschen !!

    HKEY hKey2;  
    			int Ok1,Ok2;  
    
    			Ok1=RegOpenKeyEx (HKEY_LOCAL_MACHINE, "SOFTWARE\\TELES\\skyDSL\\UDPClient\\statistics", 0,KEY_WRITE, &hKey2);   
    			Ok2=RegDeleteKey(hKey2,"CurPrio");
    			RegCloseKey(hKey2);
    

    aber es geht nicht !! In Ok2 steht dann eine 2 drin und der Schlüssel ist noch da !!

    Kann mir auch da einer Helfen ??



  • Willste den Schlüssel löschen oder das Value????

    Value:

    RegDeleteValue(hKey2,"CurPrio");
    

    Key:

    RegDeleteKey(hKey2,"statistics");
    

    dürfte so gehen hoffe ich mal und ⚠ pass schön auf das du dir nichts wichtiges aus der Reg löschst sonst haste ein Prob.

    *winke*



  • Noch was....
    du musst natürlich vorher den Schlüssel schließen.
    also das hier
    RegCloseKey(hKey2);
    bevor du ihn löschst.

    Remarks
    A deleted key is not removed until the last handle to it has been closed.

    The subkey to be deleted must not have subkeys. To delete a key and all its subkeys, you need to recursively enumerate the subkeys and delete them individually. To recursively delete keys, use the SHDeleteKey function.

    Windows Me/98/95: The function also deletes all subkeys and values. To delete a key only if the key has no subkeys or values, use the SHDeleteEmptyKey function.

    Windows Me/98/95: RegDeleteKeyW is supported by the Microsoft Layer for Unicode. To use this, you must add certain files to your application, as outlined in Microsoft Layer for Unicode on Windows Me/98/95 Systems.

    *winke*



  • Danke Leute,

    funst alles Super !!! 😃 😃 😃 😃


Log in to reply