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