Crée un Timer avec une valeur hors délai spécifiée
#include <WinAPISysWin.au3>
_WinAPI_SetTimer ( $hWnd, $iTimerID, $iElapse, $pTimerFunc )
$hWnd | Handle à la fenêtre à associer au Timer. Cette fenêtre doit être détenue par le processus appelant. Si la valeur passée pour $hWnd est 0 et qu'en même temps $iTimerID est un Timer existant, ce Timer sera remplacé de la même manière qu'un Timer existant avec $hWnd non nul. |
$iTimerID |
L'identifiant de la minuterie. Si le paramètre $hWnd est 0, et $iTimerID ne correspond pas à un Timer existant alors il est ignoré et un nouvel ID de Timer est généré. Si le paramètre $hWnd n'est pas 0 et que la fenêtre spécifiée par $hWnd a déjà un Timer avec la valeur $iTimerID, alors le Timer existant est remplacé par le nouveau timer. Quand _WinAPI_SetTimer() remplace un Timer, le Timer est remis à zéro. Par conséquent, un message sera envoyé après que la valeur hors délai soit écoulée, mais la valeur précédente de hors délai est ignorée. Si l'appel n'est pas destiné à remplacer un Timer existant, $iTimerID devrait être 0 si $hWnd est égal à 0. |
$iElapse | La valeur du hors délai, en millisecondes. |
$pTimerFunc | L'adresse d'une fonction de rappel pour être notifié que le délai d'attente est écoulé. Si ce paramètre est 0, le système envoie un message WM_TIMER à la file d'attente des messages de l'application. (Voir MSDN pour plus d'informations) |
Succès: | Retourne l'identifiant du Timer. Une application peut passer cette valeur à la fonction _WinAPI_KillTimer() pour détruire le Timer. |
Échec: | Retourne 0. |
L'identifiant du Timer, $iTimerID, est spécifique à la fenêtre associée. Une autre fenêtre peut avoir son propre Timer qui a le même identifiant en tant que Timer appartenant à une autre fenêtre. Les Timers sont distincts.
Consultez SetTimer dans la librairie MSDN.
#include <Misc.au3> #include <WinAPISysWin.au3> Opt('TrayAutoPause', 0) Local $hTimerProc = DllCallbackRegister('_TimerProc', 'none', 'hwnd;uint;uint_ptr;dword') Global $g_iCount = 0 Local $iTimerID = _WinAPI_SetTimer(0, 0, 1000, DllCallbackGetPtr($hTimerProc)) Do Sleep(100) Until _IsPressed('1B') _WinAPI_KillTimer(0, $iTimerID) DllCallbackFree($hTimerProc) Func _TimerProc($hWnd, $iMsg, $iTimerId, $iTime) #forceref $hWnd, $iMsg, $iTimerId, $iTime ConsoleWrite($g_iCount & @CRLF) $g_iCount += 1 EndFunc ;==>_TimerProc