10.16.1.9 - Функция GetKeyboardState

(ПолучитьСостояниеКлавиатуры)

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

Синтаксис

BOOL GetKeyboardState
(
	PBYTE lpKeyState	// адрес массива, который принимает данные состояния
);

Параметры
lpKeyState
Указывает на 256-байтовый массив, который принимает данные состояния для каждой виртуальной клавиши.

Возвращаемые значения
Если функция завершается успешно, величина возвращаемого значения отличная от нуля.
Если функция не выполняет задачу, величина возвращаемого значения нулевая. Чтобы получить расширенные данные об ошибках, вызовите GetLastError.

Замечания
Прикладная программа может вызвать эту функцию, чтобы извлечь данные о текущем состоянии всех виртуальных клавиш. Состояние изменяется тогда, когда поток удаляет сообщения клавиатуры из ее очереди сообщений. Состояние не изменяется тогда, когда сообщения клавиатуры посланы в очередь сообщений.
Когда функция возвращает значение, каждый элемент массива, указанного параметром lpKeyState содержит данные о состоянии виртуальной клавиши. Если старший бит равен 1, клавиша нажата; иначе она не отпущена. Если младший бит равен 1, клавиша переключилась. Клавиша, такая как CAPS LOCK, переключается, если она является включенной. Клавиша выключена и не переключает, если младший бит равен 0. Когда клавиша переключается, индикатор переключения клавиши на клавиатуре (если он есть) должен быть включен, и отключен, когда клавиша не переключается.
Чтобы извлекать информацию состояния для отдельной клавиши, используйте функцию GetKeyState.
Прикладная программа может использовать константы кодов виртуальных клавиш 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 NT				Да 
Win95					Да 
Win32s					Да 
Импортируемая библиотека			user32.lib 
Заголовочный файл				winuser.h 
Unicode					Нет 
Замечания по платформе			Не имеется

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Владимир Соковиков - 04.08.2002