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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk