Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Копирует состояние 256 виртуальных ключей в указанный буфер.
Синтаксис
BOOL GetKeyboardState(
[out] PBYTE lpKeyState
);
Параметры
[out] lpKeyState
Тип: PBYTE
Массив 256-байтов, получающий данные о состоянии для каждого виртуального ключа.
Возвращаемое значение
Тип: BOOL
Если функция выполнена успешно, возвращаемое значение ненулевое.
Если функция завершается ошибкой, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите 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, GetKeyState и MapVirtualKey.
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows 2000 Профессиональный [только классические приложения] |
| минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
| целевая платформа | Виндоус |
| Header | winuser.h (включая Windows.h) |
| Library | User32.lib |
| DLL | User32.dll |
| Набор API | ext-ms-win-ntuser-rawinput-l1-1-0 (представлен в Windows 10 версии 10.0.14393) |