UDF > EventLog >


_EventLog__Notify

Permet � une application de recevoir des notifications d'�v�nements

#include <EventLog.au3>
_EventLog__Notify ( $hEventLog, $hEvent )

Param�tres

$hEventLog Le handle du journal d'�v�nement
$hEvent Le handle d'un objet �v�nement de r�initialisation manuelle

Valeur de retour

Succ�s: Retourne True
�chec: Retourne False

Remarques

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

En relation

_EventLog__Close, _EventLog__DeregisterSource

Exemple

#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