Définit l'objet d'événement spécifié à l'état signalé
#include <WinAPIProc.au3>
_WinAPI_SetEvent ( $hEvent )
$hEvent | Handle de l'objet événement |
Succès: | Retourne True |
Échec: | Retourne False, appelez _WinAPI_GetLastError() pour obtenir des informations sur l'erreur. |
L'état d'un objet d'événement de réinitialisation manuelle reste signalé jusqu'à ce qu'il soit explicitement défini à l'état non signalé par la fonction de ResetEvent. N'importe quel nombre de threads en attente, ou de threads qui commencent des opérations d'attente pour l'objet d'événement spécifié en appelant l'une des fonctions d'attente, peut être libérée lorsque l'état de l'objet est signalé.
Consultez SetEvent 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