In Registry einen Eintrag machen und auslesen



  • Hi

    Ich weiss, dieses Thema wurde schon oft behandelt! Ich kapiere es aber nie so ganz!

    Ich möchte gerne überprüfen ob einen Eintrag in der Registry vorhanden ist.
    Ist dieser vorhanden soll er ausgelesen werden.
    Regsitry:
    Pfad: HKEY_LOCAL_MACHINE, "SOFTWARE\\test\\ADS2"
    Eintrag: sprache

    Wie mache ich das?
    Wie kann ich diesen Eintrag erstellen/ bearbeiten?

    Vielen Dank für die Antworten!



  • Hmm, da gabs mal jemanden, ich glaube Deus hieß er 😃 😉
    der hat mal was in den WinApi-FAQ gepackt :

    http://www.c-plusplus.net/forum/viewtopic.php?t=39373

    Gruß
    :: NoName ::



  • Ok lesen ist kein Problem!

    Wie kann ich aber einen String in die Registry schreiben?
    Das verstehe ich nicht in den FAQs!

    Hat mir jemand ein Beispiel dazu?



  • Lesen scheint sehr wohl ein Problem zu sein. In der FAQ ist ein Beispiel hierzu. Augen auf!



  • Ich habe es mit der FAQ versucht!
    Hier mein Code:

    HKEY hKey = NULL; 
        DWORD dwData = 256; 
        const size_t nBuffer = 128; 
        char pBuffer[nBuffer]; 
        memset(pBuffer, 0, nBuffer); 
        BYTE cDaten[256] = "";
        DWORD nLength = nBuffer; 
        char *temp = (char*) malloc(1024); 
    
        BYTE cString[]=s_sprache; 
        RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Ammann-Group",0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,0); 
        RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Ammann-Group\\ADS",0,0,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hKey,0); 
    	RegSetValueEx(hKey,"Sprache",0,REG_SZ,cString,strlen(cString)+1); 
    	RegCloseKey(hKey);
    

    Der Debuger gibt mir 2 Fehler aus:

    C:\Dokumente und Einstellungen\Marco Bigolin\Desktop\ADS2\First.cpp(58) : error C2440: 'initializing' : 'class CString' kann nicht in 'unsigned char []' konvertiert werden
            Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden
    C:\Dokumente und Einstellungen\Marco Bigolin\Desktop\ADS2\First.cpp(61) : error C2664: 'strlen' : Konvertierung des Parameters 1 von 'unsigned char []' in 'const char *' nicht moeglich
            Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
    

    Was mache ich falsch?



  • guck dir mal die Klasse auf meiner website an, das stehts (auch) drin 😉



  • Hi

    Danke! In deinem Projekt ist es aber viel aufweniger (finde ich)
    Das ganze funktioniert bei mir scho mit dem schreiben!
    Ich habe nur das Problem, dass ich den Text von einem CString (von einem Combobox) eintragen möchte!

    Wenn ich aber nun

    BYTE cString[]=s_sprache;
    

    definiere (s_sprache==CString) gibt es mir einen Fehler beim Compilieren aus!
    Wie kann ich den nun das ganze in einen BYTE-Wert umrechnen?


Anmelden zum Antworten