IE - Crash bei neuem Fenster

  • Nabend,

    ich arbeite nach wie vor an meinem Browser und bin auf ein blödes Problem gestoßen.

    Hier ein Beispielscript:

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>

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

    _IEErrorHandlerRegister()
    $oIE = _IECreateEmbedded()

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

    ObjEvent($oIE, "IEEvent_", "DWebBrowserEvents2")

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

    $GUI = GUICreate("Embedded Web control Test", 800, 600, -1, -1, $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
    $GUIActiveX = GUICtrlCreateObj($oIE, 0, 0, 800, 600)
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
    $idProgress = GUICtrlCreateProgress(0, 590, 100, 10)
    GUISetState()

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

    _IENavigate($oIE, "http://www.autoit.de")

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    WEnd

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

    Func IEEvent_ProgressChange($Progress, $ProgressMax)
    $percent = Int(($Progress * 100) / $ProgressMax)
    If $percent >= 0 And $percent <= 100 Then GUICtrlSetData($idProgress, $percent)
    EndFunc ;==>IEEvent_ProgressChange

    [/autoit]

    Sobald ich hier nun versuche, einen Link in einem neuen Fenster zu öffnen, crasht die Anwendung mit dem Fehlercode 1073741819.

    Ich weiß, dass es an

    [autoit]

    ObjEvent($oIE, "IEEvent_", "DWebBrowserEvents2")

    [/autoit]

    liegt, jedoch weiß ich nicht, wie ich das beheben könnte. Im Netz hab ich leider auch nichts aussagekräftiges gefunden.

  • Dieses Probelm ist embedded bedingt. Die einzige evtl. Möglichkeit die ich sehe ist es in IEEvent_BeforeNavigate2 abzufangen:

    [autoit]

    _IEAction($oIE, "stop")

    [/autoit]

    einen neuen Tab anzulegen

    [autoit]

    GuiCtrlCreateTabItem

    [/autoit]

    dort einen weiteren embedded IE einzubetten und dort ganz normal mit _IENavigate die Seite anzuzeigen,

    mfg autoBert