Debug Assertion Failed



  • Hallo Leute

    ich hab da ein Problem.
    Ich versuche ein Programm zu schreiben, dass auf den Ie zugreift und dessen URL Edit ausliest.

    HWND ie; 
    HWND bericht; 
    CWnd adresse; 
    int test; 
    
    //IE Fenster suchen 
    if((ie=(HWND)FindWindow( "IEFrame", "Hier steht eigentlich etwas anderes - Microsoft Internet Explorer"))) 
    {          
    bericht = FindWindowEx(ie, NULL, "Edit" , NULL); 
    adresse.m_hWnd=ie; 
    test = adresse.GetWindowTextLength(); 
    }
    

    Die vorletzte Zeile macht mir Kopfzerbrechen, denn die verursacht den Fehler. Wie komme ich an den Inhalt des Edits aus dem IE ran? GetWindowText() verursacht den gleichen Fehler



  • hi hansr

    müßte es von der Logik her nicht schon einmal so lauten...

    anstelle von:

    adresse.m_hWnd = ie;
    

    nicht:

    adresse.m_hWnd = bericht; // bericht sollte das handle zum URL-Feld haben
    

    zu 100% liegt deine Debug-Assertion daran, daß du eben kein Handle auf die Editbox hast... sondern irgendwo-hin im Speicher 😉

    Vorweg: schau mal mit Spy++ o.ä. nach... die URL Leiste im IE ist niemals ein EDIT... hat ja DropDown !!!

    prüfe mal ob du wirklich "gültige" HWND's hast... initialisiere die einfach mit NULL und prüfe vor Deiner GetWindowText() Funktion ob das Handle != NULL ist !!!

    MfG veganza



  • Hallo nochmal.

    erstma vielen Dank für deine hilfreiche antwort.
    Dieses spy++ kannte ich noch garnicht 😞
    es zeigt mir jedoch, dass die Adresszeile der Klasse Edit entstammt 😮
    Du hast aber recht, Bericht ist NULL, aber wieso?

    P.S.: adresse.m_hWnd = bericht; ...stimmt natürlich, sorry

    mfg



  • hmm bei richtigem Hinsehen, stelle ich fest, dass dieses spy++ mir ein edit IN einer ComboBox anzeigt...mit ComboBox an Stelle von edit bekomme ich jedoch den gleichen Fehler 😞



  • hat niemand ne Antwort? 😞 😞 😞


Anmelden zum Antworten