Функция GetKeyboardState копирует состояние 256 виртуальных клавиш в указанный буфер.
Синтаксис
|
Параметры
lpKeyState
[in] Указывает на 256-байтовый массив, который принимает данные о состоянии каждой виртуальной клавиши.
Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения - не нуль.
Если функция не выполняет задачу, величина возвращаемого значения - нуль. Чтобы получить дополнительные данные об ошибках, вызовите
GetLastError.Замечания
Прикладная программа может вызвать эту функцию, чтобы извлечь данные о текущем состоянии всех виртуальных клавиш. Состояние изменяется тогда, когда поток удаляет сообщения клавиатуры из своей очереди сообщений. Состояние не изменяется тогда, когда сообщения клавиатуры ставятся в очередь сообщений потока, оно не изменяется также тогда, когда сообщения клавиатуры ставятся в очереди или извлекаются из очередей сообщений других потоков. (Исключение: Потоки, которые связаны через посредство функции AttachThreadInput, совместно используют то же самое состояние клавиатуры.)
Когда функция возвращает значение, каждый элемент массива, указанного параметром lpKeyState содержит данные о состоянии виртуальной клавиши. Если старший бит равен 1, клавиша нажата; иначе она отпущена. Если клавиша переключаемая клавиша, такая как CAPS LOCK, тогда младший бит равен 1, кода она переключилась и 0, если она не переключилась. Младший бит ничего не означает для клавиши, которая не переключается.
Клавиша - переключатель, как говорится, переключается тогда, когда она включена. Сигнальная лампочка клавиши - переключателя (если он есть) на клавиатуре должна включаться, когда клавиша переключена, и и отключаться, когда клавиша не переключена.
Чтобы извлечь информацию о состоянии отдельной клавиши, используйте функцию
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.
Смотри также
Обзор Ввод данных с клавиатуры, Функции, используемые клавиатурой, GetKeyState, GetAsyncKeyState, MapVirtualKey, SetKeyboardState
Размещение и совместимость GetKeyboardState |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
User32.lib |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |