Grab IE URL



  • Es wird doch das aktive, oberste IE-Fenster ausgewertet

    Ja, also das letzte (von rechts). das wird gegrabt. was aber wenn ein neues fenster nun aufgeht, man aber noch aktive in dem anderen ist und ich davon die url will? tja, dann wird hald eben vom nun neuen (somit letztes von rechts) die url gegrabt. das bringt mir schaurig wenig *g*. deswegen die frage ob man nicht das aktive also das was grad im vordergrund steht, grabben kann. das könnte ja auch ein fenster in der mitte sein, mit aktive meine ich hald eben angewählt/vordergrund. 🙄



  • und sorry wegen dem AnsiString. 🙂
    Hm, muss ich jetzt ein extra thread aufmachen?



  • Original erstellt von <Fuck>:
    mit aktive meine ich hald eben angewählt/vordergrund.

    Genau das meine ich auch, und genau das wird hier immer ausgewertet.

    Zum AnsiString: ein eigener Thread sollte nicht notwendig sein, da du, wie schon gesagt, mittels der Suchfunktion hier ca. 23000 Threads zum Thema SubString findest.



  • Genau das meine ich auch, und genau das wird hier immer ausgewertet.

    Bist du sicher? also wenn ich jetzt den browser starte und auf c-plusplus.net gehe und dann nochmals den browser starte und auf google.com gehe, ist cpp das erste fenster und google das letzte. gut, wenn ich jetzt das cpp fenster aktive mache, und dann die exe starte wo grabben 🙂 tut, grabbt es mir eben google(!) 😞 hald immer das letzte fenster. ist das bei dir nicht so?



  • Hmm, irgendwas muss ich vorhin anders gemacht haben. Jetzt kann ich dein Problem nachvollziehen, eine Lösung fällt mir aber nicht ein.



  • hm...

    ich kann das Problem nicht nachvollziehen.

    Mit diesem Code

    TDdeClientConv* DDE = new TDdeClientConv(this);
    
    if (DDE->SetLink("IExplore", "WWW_GetWindowInfo"))
      ShowMessage(DDE -> RequestData("0xFFFFFFFF, sURL"));
    else ShowMessage("Internet Explorer is not running");
    if(DDE) delete DDE;
    

    Am Anfang der Unit

    #include <ddeman.hpp>
    

    nicht vergessen

    Mit diesem Code wird bei mir immer die URL des aktuellen Fenster gegrabt.



  • bei mir tut das nicht wie du sagst. öffne mal google. dann öffne dieses forum. dann öffne iglo.de oder sonst was.

    von links nach rechts hast du nun:

    google,
    cpp forum,
    iglo

    klicke nun das fenster cpp forum an. was ja in der mitte ist. nun grabbe mit der exe nach der URL. jetzt sag mir nicht das du die von cpp forum kriegst? bei mir wäre das nun iglo(!). wenn das jetzt bei dir anders ist möchte ich gerne die exe mal :p



  • Also...
    ich hab nun mal alles so gemacht wie du beschrieben hast. IE mit google.de bcbarena.de und iglo.de geöffnet. Dann mein Programm gestartet. Das IE Fenster mit BCBarena.de aktiviert, Seite gegrabt. Ergebnis: die URL und der Titel des bcbarena.de Fensters. Das gleiche bei allen anderen Fenstern....

    k.A. wo das Problem liegt 🙄

    Hab mir nun aber mal deinen Source-Code näher angeschaut. Diesen in ein Beispielprojekt gepackt und kompiliert - Fehler.

    dde->SetLink(Service, "WWW_GetWindowInfo")
    

    Das Service muss zwischen zwei " stehen. Nehm mal an, dass dies ein Tippfehler im Forumbeitrag ist. 🙂

    Nun hab ich die kompilierte exe mal laufen lassen - nichts. Keine Rückmeldung über die gegrabte URL.

    Ich vermute, dass mein NT 4.0 SP5 den Wert "Service" nicht kennt, denn mit dem Parameter aus meinem Beispiel (IExplore) funktioniert die Sache wunderbar.

    Dein Code (um eine Abfrage erweitert):

    TDdeClientConv *dde1 = new TDdeClientConv(this);
      if(dde1->SetLink("Service", "WWW_GetWindowInfo"))
      Edit1->Text = dde1->RequestData("0xFFFFFFFF, sURL");
      else
      ShowMessage("no Service");
      dde1->CloseLink();
      delete dde1;
    

    Mein Code (vom Link, den ich angegeben habe):

    if (DDE->SetLink("IExplore", "WWW_GetWindowInfo"))
      Edit2->Text = DDE -> RequestData("0xFFFFFFFF, sURL");
    else ShowMessage("Internet Explorer is not running");
    if(DDE) delete DDE;
    

    Teste doch mal den Code meiner Lösung, nähme mich noch wunder... 🙄



  • das mit service war kein tipp fehler. das hat schon seine richtigkeit. service ist eine string variable. String Service = "IExplore";

    ich habe deine lösung schon versucht bevor ich meinen letzten beitrag geschrieben habe. also irgendwie stimmt hier was nicht. entweder reden wir aneinander vorbei oder weis der kuckuck 🙂 schick mir doch bitte mal den source + compilierte(!) exe an fischkopf36@hotmail.com



  • Original erstellt von <fuck>:
    **das mit service war kein tipp fehler. das hat schon seine richtigkeit. service ist eine string variable. String Service = "IExplore";
    **

    Stimmt hab ich übersehen.

    Mail kommt geflogen... 😉


Anmelden zum Antworten