Wert aus Edit box lesen



  • Also ich habe mir da mal nen Code zum schrieben in einen Reg zusamen gebaut.Der da wäre:

    HKEY hKey;
           RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\Greenblue\\Settings",0,KEY_SET_VALUE,&hKey);
           unsigned char str[13]= "";
           RegSetValueEx(hKey,"Key",0,REG_SZ,str,13);
    

    so jetz möchte ich das der eingetragene wert aus einer edit box ausgelesen wirt (IDC_EDIT_KEY mit der variable m_key).Kann mir eine zeigen was ich noch verändern muss das er das macht?

    MFG Peter



  • 😕
    also du willst den Wert aus m_key mit deinem Code in die Reg eintragen?
    Du änderst jetzt einfach da wo du jetzt nen festen wert hast, auf die Variable "m_key"

    So sollte es funzen



  • Die Idee hatte ich uach schon aber :

    rror C2440: 'initializing' : 'class CString' kann nicht in 'unsigned char [13]' konvertiert werden
    Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden

    HKEY hKey;
           RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\Greenblue\\Settings",0,KEY_SET_VALUE,&hKey);
           unsigned char str[13]= m_key;
           RegSetValueEx(hKey,"Key",0,REG_SZ,str,13);
    


  • Dann guck doch mal -->>hier<<--



  • hat mir nich wirklich geholfen ich wuste nich wie ichs einbauen soll.



  • Das ->hier<- sollte dir aber helfen...



  • Wie man in die reg schreibt weis ich auch aber ich weis nur nich wie ich den eingegebenen wert aus der edit box in reg bekomme.



  • Mhh hättest du es mal genauer gelesen:

    #include <atlbase.h>
    UpdateData(TRUE);
    
    CRegKey key;
    key.Open( HKEY_CURRENT_USER, "SOFTWARE\\TEST", KEY_WRITE);
    key.SetValue( "Hallo Welt", m_key); //Hier kannst du nun deine Strings benutzten
    key.Close();
    

    Das einzigste was du beachten musst, der Schlüssel muss auch unter Software vorhanden sein, aber wie man den erstellt steht da ja auch drin...(man muss nur mal die augen aufmachen)

    😉



  • Er schreibt auch alles super ein aber irgent wie immer in beiden werten:

    {
           if (m_game = "hl")
           {
           CRegKey key;
           key.Open( HKEY_CURRENT_USER, "Software\\1\\Settings", KEY_WRITE);
           key.SetValue(m_edit ,"Key");
           key.Close();
           }
    
           if (m_game = "cs")
           {
           CRegKey key1;
           key1.Open( HKEY_CURRENT_USER, "Software\\2\\Settings", KEY_WRITE);
           key1.SetValue(m_edit ,"Key");
           key1.Close();
           }
    }
    


  • Hi,

    nehme an, das m_game vom Typ CString ist, oder?
    1. in if Anweisungen == und nicht = (im normalfall)
    bei = weist du den wert zu und vergleichst nicht
    2. da du strings vergleichst, benutz lieber die strcmp Funktion

    also if(strcmp(m_game,"hs")==0) //dann gefunden



  • ?? wieso,
    er kann doch einfacher schreiben

    if(m_game == "hl")
    

    Ach ja das mit den Gleichheitszeichen musst du beachten...
    wie Lightbringer schon schrieb, mit einem = weisst du den wert zu,
    und mit zwei == vergleichst du (das was du brauchst) 😉



  • Also hier erst mal mein code:

    {
        CRegKey key;
        if( key.Open( HKEY_CURRENT_USER, "Software\\1\\Settings") == ERROR_FILE_NOT_FOUND)
        {
        HKEY hKey;
        RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\1\\Settings", 0, NULL, REG_OPTION_NON_VOLATILE,
        KEY_ALL_ACCESS | KEY_WRITE, NULL, &hKey, NULL);
        char auslesen[200];
        unsigned long WertTyp;
        unsigned long nMaxLenge = 200;
        RegQueryValueEx(hKey, "Key", 0, &WertTyp, (unsigned char*)auslesen, &nMaxLenge);
        GetDlgItem(IDC_EDIT_KEY)->SetWindowText(auslesen);
    
        UpdateData(TRUE);
        m_game = "cs";
        UpdateData(FALSE);
        }
        else
        {
        MessageBox( "Der Key ist nicht vorhanden");
        }
        key.Close();
    }
    

    So also hier soll er überprüfen ob der key vorhanden ist wenn ja soll er ihn auslesen und wenn nicht halt die MessageBox bringen aber er bringt ihn auch wenn der key vorhanden ist.



  • du schreibst wenn der key nicht vorhanden ist, wird er angelegt ausgelesen was auch immer, und wenn er vorhanen ist komtm die msg box nicht vorhanden 😕 du hast das denk ich verdreht..



  • schiesse das is peinlich.Aber danke.



  • hey kein problem 😉
    bleibt unter uns 😃


Anmelden zum Antworten