Страница 10 из 45
Функция 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_LSHIFTVK_RSHIFT VK_LCONTROLVK_RCONTROL VK_LMENUVK_RMENU
Эти лево- и правосторонние константы доступны прикладной программе только через функции GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState и MapVirtualKey. Смотри также GetKeyState, GetAsyncKeyState, MapVirtualKey, SetKeyboardState Размещение и совместимость GetKeyboardState Windows NTДа Win95Да Win32sДа Импортируемая библиотекаuser32.lib Заголовочный файлwinuser.h UnicodeНет Замечания по платформеНе имеется |