Bagikan melalui


Fungsi panggilan balik KeyboardProc

Deskripsi

Fungsi panggilan balik yang ditentukan aplikasi atau yang ditentukan pustaka yang digunakan dengan fungsi SetWindowsHookExA/SetWindowsHookExW .

Sistem memanggil fungsi ini setiap kali aplikasi memanggil fungsi GetMessage atau PeekMessageA/PeekMessageW dan ada pesan keyboard (WM_KEYUP atau WM_KEYDOWN untuk diproses.

Jenis HOOKPROC mendefinisikan penunjuk ke fungsi panggilan balik ini. KeyboardProc adalah tempat penampung untuk nama fungsi yang ditentukan aplikasi atau yang ditentukan pustaka.

LRESULT CALLBACK KeyboardProc(
  _In_ int    code,
  _In_ WPARAM wParam,
  _In_ LPARAM lParam
);

Parameter

code [in]

Jenis: int

Kode yang digunakan prosedur kait untuk menentukan cara memproses pesan.

Jika kode kurang dari nol, prosedur hook 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 Makna
HC_ACTION 0 Parameter wParam dan lParam berisi informasi tentang pesan penekanan tombol.
HC_NOREMOVE 3 Parameter wParam dan lParam berisi informasi tentang pesan penekanan tombol, dan pesan penekanan tombol belum dihapus dari antrean pesan. (Aplikasi yang disebut fungsi PeekMessage , menentukan bendera PM_NOREMOVE .)

wParam [in]

Jenis: WPARAM

Kode kunci virtual kunci yang menghasilkan pesan penekanan tombol.

lParam [in]

Jenis: LPARAM

Jumlah berulang, kode pemindaian, bendera extended-key, kode konteks, bendera status kunci sebelumnya, dan bendera status transisi. Untuk informasi selengkapnya tentang parameter lParam , lihat Bendera Pesan Keystroke. Tabel berikut ini menjelaskan bit dari nilai ini.

Bit Deskripsi
0-15 Jumlah pengulangan. Nilainya adalah berapa kali penekanan tombol diulang sebagai akibat dari pengguna menahan kunci.
16-23 Kode pemindaian. Nilainya tergantung pada OEM.
24 Menunjukkan apakah kunci adalah kunci yang diperluas, seperti kunci fungsi atau kunci pada keypad numerik. Nilainya adalah 1 jika kuncinya adalah kunci yang diperluas; jika tidak, itu adalah 0.
25-28 Dicadangkan.
29 Kode konteks. Nilainya adalah 1 jika kunci ALT tidak berfungsi; jika tidak, itu adalah 0.
30 Status kunci sebelumnya. Nilainya adalah 1 jika kunci tidak berfungsi sebelum pesan dikirim; itu adalah 0 jika kuncinya sudah habis.
31 Status transisi. Nilainya adalah 0 jika tombol sedang ditekan dan 1 jika sedang dirilis.

Mengembalikan

Jenis: LRESULT

Jika kode kurang dari nol, prosedur kait harus mengembalikan nilai yang dikembalikan oleh CallNextHookEx.

Jika kode 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_KEYBOARD 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.

Keterangan

Aplikasi menginstal prosedur kait dengan menentukan jenis kait WH_KEYBOARD dan penunjuk ke prosedur kait dalam panggilan ke fungsi SetWindowsHookExA/SetWindowsHookExW .

Kait ini dapat dipanggil dalam konteks utas yang memasangnya. Panggilan dilakukan dengan mengirim pesan ke utas yang menginstal kait. Oleh karena itu, utas yang memasang hook harus memiliki perulangan pesan.

Lihat juga