Fungsi SetTimer (winuser.h)

Membuat timer dengan nilai waktu habis yang ditentukan.

Sintaks

UINT_PTR SetTimer(
  [in, optional] HWND      hWnd,
  [in]           UINT_PTR  nIDEvent,
  [in]           UINT      uElapse,
  [in, optional] TIMERPROC lpTimerFunc
);

Parameter

[in, optional] hWnd

Jenis: HWND

Handel ke jendela yang akan dikaitkan dengan timer. Jendela ini harus dimiliki oleh utas panggilan. Jika nilai NULL untuk hWnd diteruskan bersama dengan nIDEvent dari timer yang ada, timer tersebut akan diganti dengan cara yang sama seperti timer hWnd non-NULL yang ada.

[in] nIDEvent

Jenis: UINT_PTR

Pengidentifikasi timer bukan nol. Jika parameter hWndADALAH NULL, dan nIDEvent tidak cocok dengan timer yang ada maka diabaikan dan ID timer baru dihasilkan. Jika parameter hWnd bukan NULL dan jendela yang ditentukan oleh hWnd sudah memiliki timer dengan nilai nIDEvent, maka timer yang ada digantikan oleh timer baru. Saat SetTimer mengganti timer, timer diatur ulang. Oleh karena itu, pesan akan dikirim setelah nilai batas waktu saat ini berlalu, tetapi nilai waktu habis yang ditetapkan sebelumnya diabaikan. Jika panggilan tidak dimaksudkan untuk mengganti timer yang ada, nIDEvent harus 0 jika hWnd adalah NULL.

[in] uElapse

Jenis: UINT

Nilai waktu habis, dalam milidetik.

Jika uElapse kurang dari USER_TIMER_MINIMUM (0x0000000A), batas waktu diatur ke USER_TIMER_MINIMUM. Jika uElapse lebih besar dari USER_TIMER_MAXIMUM (0x7FFFFFFF), batas waktu diatur ke USER_TIMER_MAXIMUM.

[in, optional] lpTimerFunc

Jenis: TIMERPROC

Penunjuk ke fungsi yang akan diberi tahu ketika nilai waktu habis berlalu. Untuk informasi selengkapnya tentang fungsi ini, lihat TimerProc. Jika lpTimerFuncadalah NULL, sistem memposting pesan WM_TIMER ke antrean aplikasi. Anggota hwnd dari struktur MSG pesan berisi nilai parameter hWnd .

Nilai kembali

Jenis: UINT_PTR

Jika fungsi berhasil dan parameter hWnd adalah NULL, nilai yang dikembalikan adalah bilangan bulat yang mengidentifikasi timer baru. Aplikasi dapat meneruskan nilai ini ke fungsi KillTimer untuk menghancurkan timer.

Jika fungsi berhasil dan parameter hWnd bukan NULL, maka nilai yang dikembalikan adalah bilangan bulat bukan nol. Aplikasi dapat meneruskan nilai parameter nIDEvent ke fungsi KillTimer untuk menghancurkan timer.

Jika fungsi gagal membuat timer, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Aplikasi dapat memproses pesan WM_TIMER dengan menyertakan pernyataan kasus WM_TIMER dalam prosedur jendela atau dengan menentukan fungsi panggilan balik TimerProc saat membuat timer. Saat Anda menentukan fungsi panggilan balik TimerProc , DispatchMessage memanggil fungsi panggilan balik alih-alih memanggil prosedur jendela saat memproses WM_TIMER dengan lParam non-NULL. Oleh karena itu, Anda perlu mengirimkan pesan di utas panggilan, bahkan ketika Anda menggunakan TimerProc alih-alih memproses WM_TIMER.

Parameter wParam dari pesan WM_TIMER berisi nilai parameter nIDEvent .

Pengidentifikasi timer, nIDEvent, khusus untuk jendela terkait. Jendela lain dapat memiliki timer sendiri yang memiliki pengidentifikasi yang sama dengan timer yang dimiliki oleh jendela lain. Timernya berbeda.

SetTimer dapat menggunakan kembali ID timer dalam kasus di mana hWnd adalah NULL.

Sebelum menggunakan SetTimer atau fungsi terkait timer lainnya, disarankan untuk mengatur bendera UOI_TIMERPROC_EXCEPTION_SUPPRESSION ke false melalui fungsi SetUserObjectInformationW , jika tidak, aplikasi dapat berperilaku tidak terduga dan dapat rentan terhadap eksploitasi keamanan. Untuk informasi selengkapnya, lihat SetUserObjectInformationW.

Contoh

Misalnya, lihat Membuat Timer.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header winuser.h (termasuk Windows.h)
Pustaka User32.lib
DLL User32.dll
Set API ext-ms-win-ntuser-window-l1-1-2 (diperkenalkan dalam Windows 10, versi 10.0.10240)

Lihat juga

Konseptual

KillTimer

MSG

Referensi

SetWaitableTimer

TimerProc

Timer

WM_TIMER

SetCoalescableTimer