[Beispiel] Internetbrowser mit Ladebalken

  • hier ein Skriptbeispiel für einen embedded Browser mit Fortschrittsanzeige für das Laden der Seite:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    AutoIt Version: 3.3.6.1
    Author: AutoBert: http://www.autoit.de/index.php?page…4679#post164679

    Skriptbeispiel für den Umgang mit _IECreateEmbedded, _IEErrorHandlerRegister, _IENavigate, _IEAction GuiCtrlCreateProgress, _IEPropertyGet
    #ce ----------------------------------------------------------------------------
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <IE.au3>

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

    _IEErrorHandlerRegister()

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

    $oIE = _IECreateEmbedded()
    $SinkObject = ObjEvent($oIE, "IEEvent_", "DWebBrowserEvents2") ; Ereignisse den UDFs zuweisen, beginnend mit IEEvent_
    GUICreate("Embedded Web control Test", 640, 600, _
    (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
    $WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
    $hInput = GUICtrlCreateInput("Hier URL eingeben: ", 10, 10, 500)
    $hGo = GUICtrlCreateButton("&Go", 520, 10, 50)
    $GUIActiveX = GUICtrlCreateObj($oIE, 0, 40, 640, 480)
    GUICtrlSetResizing($GUIActiveX, $GUI_DOCKAUTO)
    $GUI_Button_Back = GUICtrlCreateButton("Back", 10, 525, 100, 22)
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR)
    $GUI_Button_Forward = GUICtrlCreateButton("Forward", 120, 525, 100, 22)
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR)
    $GUI_Button_Home = GUICtrlCreateButton("Home", 230, 525, 100, 22)
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR)
    $GUI_Button_Stop = GUICtrlCreateButton("Stop", 340, 525, 100, 22)
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR)
    $GUI_Button_Print = GUICtrlCreateButton("PRINT", 450, 525, 100, 22)
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR)
    $idProgress = GUICtrlCreateProgress(0, 555, 640, 18)
    GUICtrlSetResizing(-1, $GUI_DOCKSTATEBAR)

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

    GUISetState() ;Show GUI

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

    _IENavigate($oIE, "http://www.autoit.de/index.php?page=Thread&postID=164679#post164679")

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

    ; Waiting for user to close the window
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $hGo
    _IENavigate($oIE, GUICtrlRead($hInput))
    Case $msg = $GUI_Button_Home
    _IENavigate($oIE, "http://www.autoitscript.com")
    Case $msg = $GUI_Button_Back
    _IEAction($oIE, "back")
    Case $msg = $GUI_Button_Forward
    _IEAction($oIE, "forward")
    Case $msg = $GUI_Button_Stop
    _IEAction($oIE, "stop")
    Case $msg = $GUI_Button_Print
    _IEAction($oIE, "print")
    EndSelect
    $surl1 = _IEPropertyGet($oIE, "locationurl")
    $surl2 = GUICtrlRead($hInput)
    ; ConsoleWrite($surl1 & " " & $surl2 & " " & GUICtrlRead($idProgress) & @CRLF)
    If $surl1 <> $surl2 And GUICtrlRead($idProgress) > 90 Then GUICtrlSetData($hInput, $surl1)
    WEnd

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

    $SinkObject = 0 ; IE Eventzuweisung aufheben
    $oIE.Quit ; IE beenden
    $oIE = 0
    GUIDelete()
    Exit

    [/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] [autoit][/autoit] [autoit][/autoit]

    Hier noch ein ScreenShot:
    autoit.de/wcf/attachment/9835/

    Da das Skript aus zusammenkopieten Beispielen der Hilfe besteht könnt ihr es selbstverständlich als Vorlage benutzen, aber biite nicht komplett und ausser eigenem CopyRight-Vermerk nichts hinzugefügt.

    falls Ihr noch Wünsche, Anregungen habt bitte posten.

    viel Spass damit,

    Edit1: PostID in Skript eingefügt
    Edit2: Skript ausgetauscht, jetzt wird auch die aktuelle URL in die Eingabe übernommen

    mfg (Auto)Bert

  • Hallo stayawayknight,

    Genau sowas hab ich gerade gesucht, danke!

    schön wenn du es gebrauchen kannst,

    PS: Juhu ich bin im Screenshot verewigt :D

    dann werd ich den wohl irgendwann austauschen müssen, bevor du abhebst ;) z.B. gegen diesen:
    autoit.de/wcf/attachment/9843/
    auch mit einem Beispielprogramm von mir erstellt (siehe Signatur)

    mfg (Auto)Bert

  • Hallo autoBert

    wollte dein Script gerade ausprobieren, soweit sieht das ganze sehr gut aus.

    Problem besteht aber mit
    $SinkObject = ObjEvent($oIE, "IEEvent_", "DWebBrowserEvents2")
    sobald ein POPUP aufgeht, entweder wenn der Link target=_blank bzw. ich manuell sage -> öffnen in einen neuen Fenster.

    Kannst du das nochmal überprüfen? Wäre klasse!
    PS: Am besten wäre es wenn kein Popup aufgeht sondern das Popup im Fenster aufgeht.
    (quasi ein Kiosk Mode...)

    Grüße und danke für das tolle Script... wird bei uns bestimmt bald im Unternehmen eingesetzt :)