Permet � une application de recevoir des notifications d'�v�nements
#include <EventLog.au3>
_EventLog__Notify ( $hEventLog, $hEvent )
$hEventLog | Le handle du journal d'�v�nement |
$hEvent | Le handle d'un objet �v�nement de r�initialisation manuelle |
Succ�s: | Retourne True |
�chec: | Retourne False |
Cette fonction ne fonctionne pas avec des handles distants.
Si le param�tre $hEventLog est le handle d'un journal d'�v�nements sur un ordinateur distant, cette fonction retourne z�ro, et GetLastError retourne ERROR_INVALID_HANDLE.
Quand un �v�nement est �crit dans le journal sp�cifi� par $hEventLog, le syst�me utilise la fonction PulseEvent pour d�finir l'�v�nement sp�cifi� par le param�tre $hEvent pour l'�tat signal�.
Si le thread n'est pas en attente d'un �v�nement lorsque le syst�me appelle PulseEvent, le thread ne recevra pas de notification.
Par cons�quent, vous devez cr�er un thread s�par� pour attendre les notifications.
A noter que le syst�me appelle PulseEvent pas plus d'une fois toutes les cinq secondes.
Par cons�quent, m�me si plus d'un changement de journal d'�v�nement se produit dans un intervalle de cinq secondes, vous ne recevrez qu'une notification.
Le syst�me continuera � vous informer des changements jusqu'� ce que vous fermeiz le handle du journal d'�v�nement.
Pour fermer le journal d'�v�nements, utilisez la fonction _EventLog__Close() ou _EventLog__DeregisterSource() .
_EventLog__Close, _EventLog__DeregisterSource
#include <EventLog.au3> #include <FontConstants.au3> #include <GUIConstantsEx.au3> #include <WinAPIHObj.au3> #include <WinAPIProc.au3> Global $g_idMemo Example() Func Example() Local $hEventLog, $hEvent, $iResult ; Cr�e une GUI GUICreate("EventLog", 400, 300) $g_idMemo = GUICtrlCreateEdit("", 2, 2, 396, 300, 0) GUICtrlSetFont($g_idMemo, 9, $FW_NORMAL, $GUI_FONTNORMAL, "Courier New") GUISetState(@SW_SHOW) ; D�finit un �v�nement $hEventLog = _EventLog__Open("", "Security") $hEvent = _WinAPI_CreateEvent(0, False, False, "") _EventLog__Notify($hEventLog, $hEvent) ; Attend qu'un nouvel �v�nement se d�clenche MemoWrite("Attente d'un nouvel �v�nement") $iResult = _WinAPI_WaitForSingleObject($hEvent) _WinAPI_CloseHandle($hEvent) _EventLog__Close($hEventLog) ; Ecrit les r�sultats If $iResult = -1 Then MemoWrite("L'attente a �chou�") Else MemoWrite("Nouvel �v�nement apparu") EndIf ; Boucle jusqu'� ce que l'utilisateur quitte. Do Until GUIGetMsg() = $GUI_EVENT_CLOSE EndFunc ;==>Example ; Ecrit une ligne dans le contr�le m�mo Func MemoWrite($sMessage) GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1) EndFunc ;==>MemoWrite