Функция GetKeyState (winuser.h)
Извлекает состояние указанного виртуального ключа. Состояние указывает, находится ли клавиша вверх, вниз или переключается (вкл., выключается— чередуется каждый раз при нажатии клавиши).
Синтаксис
SHORT GetKeyState(
[in] int nVirtKey
);
Параметры
[in] nVirtKey
Тип: int
Виртуальный ключ. Если нужным виртуальным ключом является буква или цифра (от A до Z, от a до z или от 0 до 9), для nVirtKey должно быть задано значение ASCII этого символа. Для других ключей это должен быть код виртуального ключа.
Если используется раскладка клавиатуры, отличной от английского, для указания большинства символьных клавиш используются виртуальные клавиши со значениями в диапазоне ASCII A–Z и от 0 до 9. Например, для немецкой раскладки клавиатуры виртуальная клавиша со значением ASCII O (0x4F) относится к клавише "o", тогда как VK_OEM_1 относится к клавише "o with umlaut".
Возвращаемое значение
Тип: SHORT
Возвращаемое значение указывает состояние указанного виртуального ключа следующим образом:
- Если бит высокого порядка равен 1, ключ не работает; в противном случае он работает.
- Если бит нижнего порядка равен 1, ключ переключается. Если клавиша CAPS LOCK включена, она переключается. Ключ отключен и отключается, если бит низкого порядка равен 0. Индикатор клавиши переключателя (если таковой имеется) будет включен, когда клавиша включена, и выключается, когда клавиша отключена.
Комментарии
Состояние ключа, возвращаемого этой функцией, изменяется по мере того, как поток считывает ключевые сообщения из своей очереди сообщений. Состояние не отражает состояние уровня прерывания, связанное с оборудованием. Используйте функцию GetAsyncKeyState для получения этой информации.
Приложение вызывает GetKeyState в ответ на сообщение ввода с клавиатуры. Эта функция извлекает состояние ключа при создании входного сообщения.
Чтобы получить сведения о состоянии для всех виртуальных ключей, используйте функцию GetKeyboardState .
Приложение может использовать константы кода виртуального ключаVK_SHIFT, VK_CONTROL и VK_MENU в качестве значений для параметра nVirtKey . Это позволяет определить состояние клавиш SHIFT, CTRL или ALT, не различая левое и правое. Приложение также может использовать следующие константы кода виртуального ключа в качестве значений для nVirtKey , чтобы различать левый и правый экземпляры этих ключей:
VK_LSHIFTVK_RSHIFTVK_LCONTROLVK_RCONTROLVK_LMENUVK_RMENU Эти различающиеся слева и справа константы доступны приложению только с помощью функций GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState и MapVirtualKey .
Примеры
Пример см. в разделе Отображение ввода с клавиатуры.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winuser.h (включая Windows.h) |
Библиотека | User32.lib |
DLL | User32.dll |