Funktionreferenz


_IECreateEmbedded

Beschreibung anzeigen in

Erstellt ein Webbrowserobjekt, das man mit GuiCtrlCreateObj() in eine Autoit-GUI einbinden kann

#include <IE.au3>
_IECreateEmbedded ( )

Rückgabewert

Erfolg: eine Referenz (einen Verweis) auf ein Webbrowser-Objekt.
Fehler: Setzt das @error Flag auf ungleich null
@error: 1 ($_IEStatus_GeneralError) - Allgemeiner Fehler

Bemerkungen

Es kann keine Aktion ausgeführt werden, bevor das Objekt in eine GUI eingebettet ist (z.B. kann kein _IENavigate() erfolgen).
Wegen dieser Einschränkung navigiert der Browser nicht automatisch zu 'about:blank', wie dies ein Prozess macht, wenn man _IECreate() verwendet.
Man muss _IENavigate() verwenden, um 'about:blank' zu laden, nachdem das Webbrowserobjekt mit GUICtrlCreateObj() in die Parent-Anwendung eingebunden wurde.
Dies muss erledigt sein, bevor man versucht irgendeine Operation zu starten, die voraussetzt, dass ein Dokument geladen wurde (z.B. _IEBodyWriteHTML()).

Für ein InternetExplorer-Objekt gibt es Eigenschaften (z.B. erzeugt von _IECreate()), die für dieses Objekt nicht verfügbar sind.
Diese wären: der Statusbartext, die Adressleiste und andere die für einen Browser existieren aber nicht für das eingebettete Browsercontrol.

Möglicherweise können Darstellungsfehler auftreten, wenn der Fensterstil $WS_CLIPCHILDREN in GUICreate() nicht verwendet wird.

_IEQuit() kann mit diesem Objekt nicht benutzt werden. Das Objekt wird automatisch zerstört, wenn das Fenster, in welchem das Control eingebettet ist, zerstört wird.

Verwandte Funktionen

_IEAttach, _IECreate, _IENavigate

Beispiel

; Erkennt und deaktiviert COM-Errors, sodass 'Back' (zurück) und
; 'Forward' (vorwärts) außerhalb der Historygrenzen das Skript nicht abbrechen.
; (außer COM-Errors, die an die Konsole gesendet werden)

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

Local $oIE = _IECreateEmbedded()
GUICreate("EmbeddedWebControl-Test", 640, 580, _
        (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
        $WS_OVERLAPPEDWINDOW + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
GUICtrlCreateObj($oIE, 10, 40, 600, 360)
Global $idButton_Back = GUICtrlCreateButton("Zurück", 10, 420, 100, 30)
Global $idButton_Forward = GUICtrlCreateButton("Vorwärts", 120, 420, 100, 30)
Global $idButton_Home = GUICtrlCreateButton("Startseite", 230, 420, 100, 30)
Global $idButton_Stop = GUICtrlCreateButton("Anhalten", 340, 420, 100, 30)

Global $g_idError_Message = GUICtrlCreateLabel("", 100, 500, 500, 30)
GUICtrlSetColor(-1, 0xff0000)

GUISetState(@SW_SHOW) ; Macht die GUI sichtbar

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

; Wartet, bis der Benutzer das Fenster schließt
While 1
    Local $iMsg = GUIGetMsg()
    Select
        Case $iMsg = $GUI_EVENT_CLOSE
            ExitLoop
        Case $iMsg = $idButton_Home
            _IENavigate($oIE, "ttp://www.autoit.de")
            _IEAction($oIE, "stop")
            _IEAction($oIE, "back")
            CheckError("Startseite", @error, @extended)
        Case $iMsg = $idButton_Back
            _IEAction($oIE, "back")
            CheckError("Zurück", @error, @extended)
        Case $iMsg = $idButton_Forward
            _IEAction($oIE, "forward")
            CheckError("Vorwärts", @error, @extended)
        Case $iMsg = $idButton_Stop
            _IEAction($oIE, "stop")
            CheckError("Anhalten", @error, @extended)
    EndSelect
WEnd

GUIDelete()

Exit

Func CheckError($sMsg, $iError, $iExtended)
    If $iError Then
        $sMsg = "Fehler beim Verwenden Error des " & $sMsg & " Buttons (" & $iExtended & ")"
    Else
        $sMsg = ""
    EndIf
    GUICtrlSetData($g_idError_Message, $sMsg)
EndFunc   ;==>CheckError