Qualificatif de fonction.
Volatile Func FunctionName(...)
...
EndFunc
Utilisez le qualificatif Volatile pour modifier certains aspects de l'exécution de la fonction.
Les règles suivantes s'appliquent à des fonctions qui sont déclarées avec ce qualificatif:
Fonction Callback | Pendant l'exécution de la fonction, la pompe à message principale d'AutoIt n'est pas bloquée comme elle l'est normalement pour les fonctions de rappel non-volatiles. |
Fonction d'événement COM | L'exécution est synchrone (voir exemple). |
_COM_Example() Func _COM_Example() ; Crée un objet Internet Explorer Local $oIE = ObjCreate("InternetExplorer.Application") ; Traite les erreurs If @error Then Return $oIE.Visible = True ; Définit la visibilité ; Objet événement personnalisé ObjEvent($oIE, "_IEEvent_", "DWebBrowserEvents2") ; Navigue n'importe où $oIE.navigate("http://www.google.com") ; Traite les erreurs éventuelles de chargement If @error Then $oIE.Quit() Return EndIf ; Attend que la page se charge While $oIE.readyState <> "complete" And $oIE.readyState <> 4 Sleep(10) WEnd ; Attend quelques secondes pour voir si d'autres événements seront déclenchés Sleep(3000) ; Rien de plus à faire. Ferme IE et retourne de la fonction $oIE.Quit() EndFunc ;==>_COM_Example ;Définition de la méthode BeforeNavigate2 Volatile Func _IEEvent_BeforeNavigate2($oIEpDisp, $sIEURL, $iIEFlags, $sIETargetFrameName, $sIEPostData, $iIEHeaders, ByRef $bIECancel) ConsoleWrite("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!--BeforeNavigate2 est déclenché--!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " & @CRLF & _ "$oIEpDisp = " & $oIEpDisp() & " - " & ObjName($oIEpDisp) & @CRLF & _ ;par exemple la propriété et le nom par défaut de l'objet "$sIEURL = " & $sIEURL & @CRLF & _ "$iIEFlags = " & $iIEFlags & @CRLF & _ "$sIETargetFrameName = " & $sIETargetFrameName & @CRLF & _ "$sIEPostData = " & $sIEPostData & @CRLF & _ "$iIEHeaders = " & $iIEHeaders & @CRLF & _ "$bIECancel = " & $bIECancel & @CRLF & _ "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " & @CRLF & @CRLF) ; Annule la navigation $bIECancel = True EndFunc ;==>_IEEvent_BeforeNavigate2