D�finit l'objet d'�v�nement sp�cifi� � l'�tat non signal�
#include <WinAPIProc.au3>
_WinAPI_ResetEvent ( $hEvent )
$hEvent | Handle de l'objet d'�v�nement. La fonction _WinAPI_CreateEvent() retourne ce handle. |
Succ�s: | Retourne True. |
�chec: | Retourne False, appelez _WinAPI_GetLastError() pour obtenir des informations suppl�mentaires sur l'erreur. |
L'�tat d'un objet �v�nement reste non signal� jusqu'� ce qu'il soit explicitement d�finie � signal� par la fonction _WinAPI_SetEvent(). Cet �tat non signal� bloque l'ex�cution des threads qui ont sp�cifi� l'objet d'�v�nement en appelant une des fonctions _WinAPI_Wait....
La fonction _WinAPI_ResetEvent() est utilis�e principalement pour les objets d'�v�nement de r�initialisation manuelle, qui doivent �tre d�finies explicitement � l'�tat non signal�.
Les objets d'�v�nement de r�initialisation automatique changent automatiquement de signal� � non signal� apr�s qu'un seul thread en attente soit lib�r�.
_WinAPI_CreateEvent, _WinAPI_SetEvent
Consultez ResetEvent dans la librairie MSDN.
#include <WinAPIHObj.au3> #include <WinAPIProc.au3> Global $g_tEvents = DllStructCreate("handle Event[3];") $g_tEvents.Event(1) = _WinAPI_CreateEvent(0, True, False) $g_tEvents.Event(2) = _WinAPI_CreateEvent(0, True, False) $g_tEvents.Event(3) = _WinAPI_CreateEvent(0, True, False) HotKeySet("{ESC}", "_Exit") AdlibRegister("_FireEvent_1", 500) AdlibRegister("_FireEvent_2", 800) Local $iEvent Do $iEvent = _WinAPI_WaitForMultipleObjects(3, $g_tEvents, False, 100) Switch $iEvent Case 0 ConsoleWrite("+ First Event" & @CRLF) _WinAPI_ResetEvent($g_tEvents.Event(1)) Case 1 ConsoleWrite("> Second Event" & @CRLF) _WinAPI_ResetEvent($g_tEvents.Event(2)) EndSwitch Until $iEvent = 2 Or $iEvent = -1 ;Erreur If $iEvent = 2 Then ConsoleWrite("! Exit Event" & @CRLF) AdlibUnRegister("_FireEvent_1") AdlibUnRegister("_FireEvent_2") _WinAPI_CloseHandle($g_tEvents.Event(1)) _WinAPI_CloseHandle($g_tEvents.Event(2)) _WinAPI_CloseHandle($g_tEvents.Event(3)) EndIf Func _Exit() _WinAPI_SetEvent($g_tEvents.Event(3)) EndFunc ;==>_Exit Func _FireEvent_1() _WinAPI_SetEvent($g_tEvents.Event(1)) EndFunc ;==>_FireEvent_1 Func _FireEvent_2() _WinAPI_SetEvent($g_tEvents.Event(2)) EndFunc ;==>_FireEvent_2