Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Deskripsi
Fungsi panggilan balik yang ditentukan aplikasi atau yang ditentukan pustaka yang digunakan dengan fungsi SetWindowsHookExA/SetWindowsHookExW . Sistem memanggil fungsi ini setiap kali peristiwa input mouse baru akan diposting ke dalam antrean input utas.
Jenis HOOKPROC mendefinisikan penunjuk ke fungsi panggilan balik ini. LowLevelMouseProc adalah tempat penampung untuk nama fungsi yang ditentukan aplikasi atau yang ditentukan pustaka.
LowLevelMouseProc adalah tempat penampung untuk nama fungsi yang ditentukan aplikasi atau yang ditentukan pustaka.
LRESULT CALLBACK LowLevelMouseProc(
_In_ int nCode,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
Parameter-parameternya
nCode [in]
Jenis: int
Kode yang digunakan prosedur kait untuk menentukan cara memproses pesan.
Jika nCode kurang dari nol, prosedur kait harus meneruskan pesan ke fungsi CallNextHookEx tanpa pemrosesan lebih lanjut dan harus mengembalikan nilai yang dikembalikan oleh CallNextHookEx.
Parameter ini bisa menjadi salah satu nilai berikut.
| Nilai | Meaning |
|---|---|
| HC_ACTION 0 | Parameter wParam dan lParam berisi informasi tentang pesan mouse. |
wParam [in]
Jenis: WPARAM
Pengidentifikasi pesan mouse.
Parameter ini bisa menjadi salah satu pesan berikut: WM_LBUTTONDOWN, WM_LBUTTONUP, WM_MOUSEMOVE, WM_MOUSEWHEEL, WM_RBUTTONDOWN, WM_RBUTTONUP, WM_MBUTTONDOWN, WM_MBUTTONUP, WM_XBUTTONDOWN, atau WM_XBUTTONUP.
lParam [in]
Jenis: LPARAM
Penunjuk ke struktur MSLLHOOKSTRUCT .
Pengembalian Barang
Jenis: LRESULT
Jika nCode kurang dari nol, prosedur kait harus mengembalikan nilai yang dikembalikan oleh CallNextHookEx.
Jika nCode lebih besar dari atau sama dengan nol, dan prosedur kait tidak memproses pesan, sangat disarankan agar Anda memanggil CallNextHookEx dan mengembalikan nilai yang dikembalikannya; jika tidak, aplikasi lain yang telah menginstal kait WH_MOUSE_LL tidak akan menerima pemberitahuan kait dan mungkin bertingkah salah sebagai akibatnya.
Jika prosedur kait memproses pesan, itu dapat mengembalikan nilai bukan nol untuk mencegah sistem meneruskan pesan ke rantai kait lainnya atau prosedur jendela target.
Komentar
Aplikasi menginstal prosedur kait dengan menentukan jenis kait WH_MOUSE_LL dan penunjuk ke prosedur kait dalam panggilan ke fungsi SetWindowsHookExA/SetWindowsHookExW .
Kait ini dipanggil dalam konteks utas yang memasangnya. Panggilan dilakukan dengan mengirim pesan ke utas yang memasang hook. Oleh karena itu, utas yang memasang hook harus memiliki perulangan pesan.
Input mouse dapat berasal dari driver mouse lokal atau dari panggilan ke fungsi mouse_event . Jika input berasal dari panggilan ke mouse_event, input "disuntikkan". Namun, kait WH_MOUSE_LL tidak disuntikkan ke proses lain. Sebaliknya, konteks beralih kembali ke proses yang menginstal kait dan dipanggil dalam konteks aslinya. Kemudian konteks beralih kembali ke aplikasi yang menghasilkan peristiwa.
Prosedur kait harus memproses pesan dalam waktu lebih singkat daripada entri data yang ditentukan dalam nilai LowLevelHooksTimeout dalam kunci registri berikut:
HKEY_CURRENT_USER\Control Panel\Desktop
Nilainya dalam milidetik. Jika prosedur kait habis, sistem meneruskan pesan ke hook berikutnya. Namun, pada Windows 7 dan yang lebih baru, kait dihapus secara diam-diam tanpa dipanggil. Tidak ada cara bagi aplikasi untuk mengetahui apakah hook dihapus.
Windows 10 versi 1709 dan yang lebih baru Nilai batas waktu maksimum yang diizinkan sistem adalah 1000 milidetik (1 detik). Sistem akan default menggunakan batas waktu 1000 milidetik jika nilai LowLevelHooksTimeout diatur ke nilai yang lebih besar dari 1000.
Nota
Kait debug tidak dapat melacak jenis kait tetikus tingkat rendah ini. Jika aplikasi harus menggunakan kait tingkat rendah, aplikasi harus menjalankan kait pada utas khusus yang meneruskan pekerjaan ke utas pekerja dan kemudian segera kembali. Dalam kebanyakan kasus di mana aplikasi perlu menggunakan kait tingkat rendah, aplikasi harus memantau input mentah sebagai gantinya. Ini karena input mentah dapat memantau pesan mouse dan keyboard secara asinkron yang ditargetkan untuk utas lain lebih efektif daripada kait tingkat rendah. Untuk informasi selengkapnya tentang input mentah, lihat Input Mentah.