Browser-Interaktion (Adresszeile auslesen)

  • Guten Tag,

    mich beschäftigt schon seit längerem ein kleines Problem. Ich möchte irgendwie die Adresszeile des Browsers auslesen und die daraus gewonnene Informationen in ein File am Rechner speichern. Ich hatte schon Lösungsansätze mit JavaScript, erfuhr dann aber, dass das Schreiben von Files aus Sicherheitsgründen nicht mehr möglich sei.

    Durch einen Freund erfuhr ich dann von AutoIt, und jetzt möchte ich fragen, ob und wie das damit zu realisieren wäre.

    Einmal editiert, zuletzt von sirstefan (27. Oktober 2008 um 16:38)

  • Danke schonmal, ich werd mich da mal reinarbeiten und mir das anschauen.

    Ich bilde mir ein, es gibt sowas wie Browserklassen in AutoIt...?

  • Da werd ich ja richtig überflutet mit Lösungen... danke.
    Vielleicht habe ich aber vergessen zu erwähnen, dass das Browserfenster schon vor dem Aufruf des Scripts offen ist, d.h. es soll die Adresszeile aus einem bereits geöffneten Fenster holen.

  • OK, mit _IEAttach funktioniert es schon gut.
    Da sich aber der Fenstername immer ändert, hab ich mir die Funktion WinGetTitle rausgesucht.

    [autoit]

    #include <IE.au3>
    $fenstername = WinGetTitle("Internet Explorer")
    $oIE = _IEAttach ($fenstername)
    $addr = _IEPropertyGet ($oIE, "LocationURL")
    Msgbox(0, "", $addr)

    [/autoit]

    Das Problem jetzt ist aber, dass er das Fenster garnicht mehr findet. Was mache ich falsch?

    Code
    --> IE.au3 V2.4-0 Warning from function _IEAttach, $_IEStatus_NoMatch
  • Ok, ich hab jetzt am Anfang des Codes Opt("WinTitleMatchMode", 2) stehen, damit er es auf substrings durchsucht. Er findet das Fenster allerdings noch immer nicht.

  • Das ich da nicht selber draufgekommen bin ^^
    Die Ausgabe von der MsgBox mit $fenstername ist dieselbe wie von $addr, nämlich 0.
    EDIT:
    Der Code, der Code...

    [autoit]

    #include <IE.au3>
    Opt("WinTitleMatchMode", 2)
    $fenstername = WinGetTitle("Explorer")
    MsgBox(0, "", $fenstername)
    $oIE = _IEAttach ($fenstername)
    $addr = _IEPropertyGet ($oIE, "LocationURL")
    Msgbox(0, "", $addr)

    [/autoit]
  • Ich weiß jetzt nicht wieso es anders nicht geht, aber so geht es:

    [autoit]

    #include <IE.au3>
    Opt("WinTitleMatchMode",2)
    $fensterhandle = WinGetHandle(WinGetTitle("Internet Explorer"))
    $oIE = _IEAttach ($fensterhandle,"hwnd")
    $addr = _IEPropertyGet ($oIE, "LocationURL")
    Msgbox(0, "Adresszeile", $addr)

    [/autoit]
  • So, jetzt ist es offiziell, du bist mein persönlicher Held. Ich möchte mich auch herzlich bei den anderen bedanken.

  • Ich probiers jetzt auch auf diese Weise, weil ich ziemlich ins Fettnäpfchen getreten bin, weil ich das ganze auch gerne mit Herrn Firefox laufen lassen würde und es anscheinend nichts vergleichbares zu _IEAttach in FF.au3 gibt. Welche ControlID wäre das denn dann?

  • Ja, das hab ich auch schon ausprobiert nur zeigt er einfach keine ID an. Im Internet Explorer jedoch schon (41477).