Функция GetKeyboardState 


Функция GetKeyboardState копирует состояние 256 виртуальных клавиш в указанный буфер.

Синтаксис

BOOL GetKeyboardState(

    PBYTE lpKeyState
);

Параметры

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

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz