Funktionsreferenz

ObjEvent

Verarbeitet eingehende Ereignisse von dem angegebenen Objekt.

ObjEvent ( $ObjectVar, "functionprefix" [, "interface name"] )
ObjEvent ( "AutoIt.Error" [, "function name"] )

 

Parameter

$ObjectVar Eine Variable die das Objekt enthält von dem man die Ereignisse empfangen möchte
"functionprefix" Der Präfix der Funktionen die man festlegt um die eingehenden Ereignisse zu verarbeiten.
Der Präfix ist dem Objekt-Methodenamen angehängt.
"interface name" [optional] Name einer Ereignis-Schnittstelle die benutzt werden soll.
Merke: Es muss für das Objekt Unterstützung als ausgehend finden UND
es muss vom Typ DISPATCH sein.

 

Rückgabewert

Erfolg: Gibt ein Objekt oder einen Funktionsnamen zurück.
Fehler: Gibt "" zurück und setzt @error auf 1.

 

Bemerkungen

Das erste Format wird genutzt um die Ereignisse von dem gegebenen Objekt abzurufen.
Um ein bestimmtes Element abzurufen, erstellt eine AutoIt-Funktion benannt dem
gegebenen Präfix mit dem Ereignisnamen anheftend.

Das zweite Format wird für das COM Error Handling genutzt. Sollte irgendein COM-Fehler
auftreten, wird die angegebene Funktion aufgerufen.
Wird der zweite Parameter ausgelassen, wird der Name der
aktuellen Errorhandler-Function zurückgegeben, wenn vorhanden.

Siehe die Obj/COM Referenz für detaillierte Erkärungen.

 

Verwandte Funktionen

ObjGet, IsObj, ObjCreate, GUICtrlCreateObj

 

Beispiel


; ObjEvent Beispiel

ProgressOn("Beispiel", "Seite wird geladen...")
$oIE = ObjCreate("InternetExplorer.Application.1") ; Internet Explorer Anwendung starten
$SinkObject = ObjEvent($oIE, "IEEvent_", "DWebBrowserEvents2") ; Ereignisse den UDFs zuweisen, beginnend mit IEEvent_

; Etwas Nachschlagen
$oIE.Visible = 1
$oIE.RegisterAsDropTarget = 1
$oIE.RegisterAsBrowser = 1
$oIE.Navigate("http://www.AutoIt.de/")

Sleep(3000) ; Etwas Zeit zum Laden der Webseite erlauben

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

; Eine von vielen Internet Explorer Ereignisfunktionen

Func IEEvent_ProgressChange($Progress, $ProgressMax)
    $percent = Int(($Progress * 100) / $ProgressMax)
    If $percent >= 0 And $percent <= 100 Then
        ProgressSet($percent, $percent & " Prozent noch übrig.", "Laden der Webseite")
    EndIf

EndFunc   ;==>IEEvent_ProgressChange

Exit

; COM Fehlerbehandlung Beispiel
; -------------------------

$oIE = ObjCreate("InternetExplorer.Application.1") ; Internet Explorer Anwendung starten

Global $g_eventerror = 0 ; Dies ist notwendig, damit Com-Fehler entdeckt werden können. Dies muss später wieder zurückgesetzt werden.

$oMyError = ObjEvent("AutoIt.Error", "MyErrFunc") ; COM-Fehlerbehandlung initialisieren

$oIE.UnknownMethod ; Bewusst eine undefinierte Methode aufrufen

If $g_eventerror Then
    $g_eventerror = 0
    MsgBox(0, "AutoItCOM Test", "Test erfolgreich: Aufgetretener Fehler Nr.: " & @error)
Else
    MsgBox(0, "AutoItCOM Test", "Test fehlgeschlagen!")
EndIf

Exit

; Dies ist die selbstdefinierte Fehlerbehandlungsroutine
Func MyErrFunc()

    MsgBox(0, "AutoItCOM Test", "COM Fehler abgefangen !" & @CRLF & @CRLF & _
            "err.description ist: " & @TAB & $oMyError.description & @CRLF & _
            "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
            "err.number ist: " & @TAB & Hex($oMyError.number, 8) & @CRLF & _
            "err.lastdllerror ist: " & @TAB & $oMyError.lastdllerror & @CRLF & _
            "err.scriptline ist: " & @TAB & $oMyError.scriptline & @CRLF & _
            "err.source ist: " & @TAB & $oMyError.source & @CRLF & _
            "err.helpfile ist: " & @TAB & $oMyError.helpfile & @CRLF & _
            "err.helpcontext ist: " & @TAB & $oMyError.helpcontext _
            )

    Local $err = $oMyError.number
    If $err = 0 Then $err = -1

    $g_eventerror = $err ; Zum Abfragen, nachdem die Funktion beendet ist
EndFunc   ;==>MyErrFunc