GetKeyboardState функция копирует статус 256 виртуальных клавиш в указанный буфер.
(BOOL GetKeyboardState PBYTE lpKeyState / / указатель на массив для получения данных о состоянии);
Если функция выполнена успешно, возвращаемое значение не равно нулю.
Если вызов функции был неуспешен, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Приложение может вызвать эту функцию для получения текущего состояния всех виртуальных клавиш. Изменения статуса, как поток удаляет сообщения клавиатуры из его очереди сообщений. Статус не меняется, как клавиатура помещаются в очередь потока сообщений, а также изменить как сообщения клавиатуры для или извлекаемый из очередей сообщений других потоков. (Исключение: потоки, которые связаны с помощью AttachThreadInput разделяют то же состояние клавиатуры.)
Когда функция возвращает значение, каждый член массива, который указывает параметр lpKeyState содержит данные о состоянии для виртуального ключа. Если старший бит равен 1, ключ отключен; в противном случае это вверх. Если бит низкого порядка 1, переключить ключ. Ключ, такие как caps lock ключ, переключается если он включен. Ключ выключен и untoggled если бит низкого порядка 0. Переключатель ключа индикатор (если имеется) на клавиатуре будет когда переключено ключ, и вне когда ключ untoggled.
Чтобы получить сведения о состоянии для индивидуального ключа, используйте функцию GetKeyState . Чтобы получить текущее состояние для индивидуального ключа независимо от ли соответствующее сообщение клавиатуры извлечения из очереди сообщений, следует используйте функцию GetAsyncKeyState
Приложение может использовать виртуальный ключ кодекс константы VK_SHIFT, VK_CONTROL и VK_MENU, как индексы в массив, который указывает lpKeyState. Это дает статус shift, ctrl или alt ключи без проведения различия между левой и правой. Приложение также может использовать следующие константы кодов виртуальных клавиш как индексы для левого и правого экземпляров этих ключей.
VK_LSHIFT | VK_RSHIFT |
VK_LCONTROL | VK_RCONTROL |
VK_LMENU | VK_RMENU |
Эти различия слева и право константы доступны приложению только через GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyStateи MapVirtualKey функции.
nbsp; Windows &NT: требует версии 3.1 или более поздней версии.
Windows:Требует Windows 95 или более поздней версии.
Windows CE:Не поддерживается.
Заголовок:Объявленные в winuser.h.
Импорта библиотеки:Использование user32.lib.
Обзор ввода клавиатуры, функции ввода клавиатуры, GetKeyState, GetAsyncKeyState, MapVirtualKey, SetKeyboardState