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.
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