Поделиться через


Функция GetKeyState (winuser.h)

Извлекает состояние указанного виртуального ключа. Состояние указывает, находится ли ключ вверх, вниз или переключается (вкл., отключается) при каждом нажатии клавиши.

Синтаксис

SHORT GetKeyState(
  [in] int nVirtKey
);

Параметры

[in] nVirtKey

Тип: int

Виртуальный ключ. Если нужный виртуальный ключ является буквой или цифрой (A–Z, z или 0–9), nVirtKey необходимо задать значение ASCII этого символа. Для других ключей он должен быть кодом виртуального ключа.

Если используется макет клавиатуры, отличный от английского, виртуальные клавиши со значениями в диапазоне ASCII A до Z и 0–9 используются для указания большинства символьных клавиш. Например, для немецкой клавиатуры виртуальный ключ значения ASCII O (0x4F) ссылается на клавишу O, а VK_OEM_1 ссылается на клавишу O с umlaut.

Возвращаемое значение

Тип: SHORT

Возвращаемое значение указывает состояние указанного виртуального ключа следующим образом:

  • Если бит высокого порядка равен 1, ключ вниз; в противном случае это происходит.
  • Если бит низкого порядка равен 1, ключ переключается. Если этот ключ включен, ключ CAPS LOCK, переключается. Ключ отключен и отключен, если бит низкого порядка равен 0. Переключатель индикатора клавиши (если таковой) на клавиатуре будет включен, когда ключ переключается, и отключается, когда клавиша отключена.

Замечания

Состояние ключа, возвращаемое этой функцией, изменяется, так как поток считывает ключевые сообщения из очереди сообщений. Состояние не отражает состояние уровня прерывания, связанное с оборудованием. Используйте функцию GetAsyncKeyState для получения этой информации.

Приложение вызывает GetKeyState в ответ на сообщение с вводом клавиатуры. Эта функция извлекает состояние ключа при создании входного сообщения.

Чтобы получить сведения о состоянии для всех виртуальных ключей, используйте функцию GetKeyboardState .

Приложение может использовать константы кода виртуального ключаVK_SHIFT, VK_CONTROL и VK_MENU в качестве значений для параметра nVirtKey . Это дает состояние клавиш SHIFT, CTRL или ALT без различия между левым и правым. Приложение также может использовать следующие константы кода виртуального ключа в качестве значений для nVirtKey , чтобы различать левые и правые экземпляры этих ключей:

VK_LSHIFT VK_RSHIFT VK_LCONTROLVK_RCONTROLVK_LMENUVK_RMENU эти константы слева и справа доступны приложению только с помощью функций GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState и MapVirtualKeyKey.

Примеры

Пример см. в разделе "Отображение ввода клавиатуры".

Требования

Требование Ценность
Минимальный поддерживаемый клиент Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Windows
Header winuser.h (включая Windows.h)
Library User32.lib
DLL User32.dll

См. также