UDF > WinAPIEx > System > Windows >


_WinAPI_SetTimer

Crée un Timer avec une valeur hors délai spécifiée

#include <WinAPISysWin.au3>
_WinAPI_SetTimer ( $hWnd, $iTimerID, $iElapse, $pTimerFunc )

Paramètres

$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)

Valeur de retour

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.

Remarque

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.

Voir aussi

Consultez SetTimer dans la librairie MSDN.

Exemple

#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