Fungsi GetKeyboardState (winuser.h)

Menyalin status 256 kunci virtual ke buffer yang ditentukan.

Sintaks

BOOL GetKeyboardState(
  [out] PBYTE lpKeyState
);

Parameter

[out] lpKeyState

Jenis: PBYTE

Array 256-byte yang menerima data status untuk setiap kunci virtual.

Mengembalikan nilai

Jenis: BOOL

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

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

Keterangan

Aplikasi dapat memanggil fungsi ini untuk mengambil status saat ini dari semua kunci virtual. Status berubah sebagai utas menghapus pesan keyboard dari antrean pesannya. Status tidak berubah karena pesan keyboard diposting ke antrean pesan utas, juga tidak berubah saat pesan keyboard diposting ke atau diambil dari antrean pesan dari utas lain. (Pengecualian: Utas yang tersambung melalui AttachThreadInput memiliki status keyboard yang sama.)

Saat fungsi kembali, setiap anggota array yang diarahkan oleh parameter lpKeyState berisi data status untuk kunci virtual. Jika bit berurutan tinggi adalah 1, kuncinya tidak berfungsi; jika tidak, itu sudah habis. Jika kunci adalah tombol alih, misalnya CAPS LOCK, maka bit berurutan rendah adalah 1 saat kunci beralih dan 0 jika kunci tidak disentuh. Bit berurutan rendah tidak berarti untuk kunci non-toggle. Tombol bolak-balik dikatakan beralih saat dinyalakan. Lampu indikator tombol alih (jika ada) pada papan ketik akan menyala saat tombol di-toggle, dan mati saat tombol tidak disentuh.

Untuk mengambil informasi status untuk kunci individual, gunakan fungsi GetKeyState . Untuk mengambil status saat ini untuk kunci individual terlepas dari apakah pesan keyboard yang sesuai telah diambil dari antrean pesan, gunakan fungsi GetAsyncKeyState .

Aplikasi dapat menggunakan konstanta kode kunci virtual VK_SHIFT, VK_CONTROL , dan VK_MENU sebagai indeks ke dalam array yang ditunjukkan oleh lpKeyState. Ini memberikan status tombol SHIFT, CTRL, atau ALT tanpa membedakan antara kiri dan kanan. Aplikasi juga dapat menggunakan konstanta kode kunci virtual berikut sebagai indeks untuk membedakan antara instans kiri dan kanan kunci tersebut:

VK_LSHIFT
VK_RSHIFT
VK_LCONTROL
VK_RCONTROL
VK_LMENU
VK_RMENU
 

Konstanta pembeda kiri dan kanan ini hanya tersedia untuk aplikasi melalui fungsi GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState, dan MapVirtualKey .

Persyaratan

   
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 (sertakan Windows.h)
Pustaka User32.lib
DLL User32.dll
Set API ext-ms-win-ntuser-rawinput-l1-1-0 (diperkenalkan dalam Windows 10, versi 10.0.14393)

Lihat juga