embbed ie weiterleitung abfangen

  • hi,

    ich habe ein kleines prog gebaut mit embbed ie, weiß einer zufällig ob ich irgendwie abfangen kann wenn ne neue seite aufgerufen oder die aktuelle refresht wird?
    also will jedes mal wenn ne seite aktualisiert wird oder ne neue aufgerufen ne nachricht damit ich ne funktion aufrufen kann

    mfg doomedone

    2 Mal editiert, zuletzt von Doomedone (27. Juni 2011 um 21:23)

  • Du kannst zum Beispiel permanent abfragen welche URL die aktuell angezeigt Seite hat und diesen Wert dann mit dem zuvor ermittelten vergleichen.

    [autoit]


    global $url = ""

    [/autoit][autoit][/autoit][autoit]

    while 1
    $newURL = _IEPropertyGet ( $oIE, "locationurl" )
    if $newURL <> $url then
    msgbox(0,"URL wurde geändert","Alte URL: " & $url & @CRLF & "Neue URL: " & $newURL)
    $url = $newURL
    endif
    wend

    [/autoit]

    Das funktioniert bei einem Seitenrefresh jedoch nicht, kA wie man das abfragen könnte.

  • hm kann man die locationurl vll abändern zb n # hintendran setzen? dann könnte man des abfragen

  • Wie willst du da was ändern? Dir geht es doch darum mitzubekommen wenn der Benutzer einen Link innerhalb des embedded Fensters klickt. Wenn er die Seite refresht (übers Rechtsklick Menü oder Button auf der Page) bekommst du davon ja nichts mit, bzw der Browser ruft dann ja einfach die aktuelle Seite nochmals auf, somit auch keine URL Veränderung die das von mir geschilderte Verfahren mitbekommen würde.

    Was man evtl. noch versuchen könnte wäre das hier:

    [autoit]

    if _IEPropertyGet ( $oIE, "busy" ) = TRUE then msgbox(0,"Aktion gestartet","irgendwas passiert gerade im browser...")

    [/autoit]

    Da solltest du dann sofort bescheid bekommen wenn irgendwas geladen wird, also auch einen Seiten refresh. Ggf. kannst du das dann auch noch mit der URL geschichte koppeln und warten bis busy = FALSE ist bevor du die Schleife erneut durchläufst. Aber ohne Testgui solls das dann auch gewesen sein von meiner Seite.

  • soweit ich verstanden habe sagt mir des busy nur dann n true wenn n download oder ne navigation grad am laufen is seh ich des richtig?

  • jup dann isses perfekt danke wollte nur vermeiden das ich was falsch verstanden hab und ewig mit fehlersuchen verbringe deswegen lieber noch ma nachgefragt ^^

  • hm is doch leider net perfekt es funktioniert praktisch nicht da das script wenn ich auf nen link klick immer pausiert bis die neue seite aufgerufen ist.... jemand n lösungsvorschlag dafür?

  • [autoit]

    #include
    #include
    #include
    #include

    [/autoit][autoit][/autoit][autoit]

    $oIE = _IECreateEmbedded()
    $hGui = GUICreate("Form1", @DesktopWidth, @DesktopHeight - 80,-1,-1,BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_MAXIMIZEBOX))

    [/autoit][autoit][/autoit][autoit]

    $cFav = GUICtrlCreateMenu("Favoriten")
    $cAutoit = GUICtrlCreateMenuItem("autoit.de", $cFav)
    $cGoogle = GUICtrlCreateMenuItem("Google.de", $cFav)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    GUICtrlCreateObj($oIE, 0, 0, @DesktopWidth, @DesktopHeight -90)
    $oIE.navigate("autoit.de")
    GUISetState(@SW_SHOW)
    $i = 0
    GUISetState(@SW_MAXIMIZE,$hgui)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3
    Exit
    Case $cAutoit
    $oIE.navigate("autoit.de")
    Case $cGoogle
    $oIE.navigate("www.google.de")
    EndSwitch
    if _IEPropertyGet ( $oIE, "busy" ) = TRUE then msgbox(0,"Aktion gestartet","irgendwas passiert gerade im browser...")
    WEnd

    [/autoit]


    so des is mein code bislang is aber noch net vollständig später aber halt erst nachdem ich des prob gelöst habe soll mir ein button per html mit eingebaut werden indem ich mir den html code vom embbed ie hohl zerschneid paar sachen einfüg und wieder in den browser spiel.
    dazu brauch ich allerdings des signal wenn ne weiterleitung da is da ich sonst entweder tausende buttons nacheinander einfüg oder halt nur ein mal und dann bei refresh nicht wieder.
    den html code zu durchsuchen um zu schauen ob der button schon vorhanden is hab ich auch schon gedacht nur is des etwas zeitlastig und eig sollte es nicht so arg auffallen das des prog läuft sondern eher der browser wie wenn ich normal ie benutz laufen
    und wie bereits gesagt funktioniert des net da ich zu dem _iegetproperty nicht komme wenn ne neue seite geladen wird da das script in der zeit anhält

    so des sind alle infos die ich hab hab se bis jetz net gepostet da ich dachte s wäre verständlich sorry dafür hoff es ist jetzt klar

    mfg doomedone

    Einmal editiert, zuletzt von Doomedone (27. Juni 2011 um 22:04)