Функция GetKeyState

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

Синтаксис

SHORT GetKeyState(
    int nVirtKey
);

Параметры

nVirtKey

[in] Определяет виртуальную клавишу. Если нужная виртуальная клавиша - буква или цифра (от А до Z, от а до z или от 0 до 9), nVirtKey должен быть установлен в значение ASCII этого символа. Для других клавиш, он должен быть кодом виртуальной клавиши.

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

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

Величина возвращаемого значения определяет состояние данной виртуальной клавиши как указано ниже:

Замечания

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

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

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

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

VK_LSHIFT VK_RSHIFT
VK_LCONTROL VK_RCONTROL
VK_LMENU VK_RMENU

Эти лево- и правосторонние константы доступны прикладной программе только через функции GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState и MapVirtualKey.

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

Смотри также

Обзор Ввод данных с клавиатуры, GetAsyncKeyState, GetKeyboardState, MapVirtualKey, SetKeyboardState

Размещение и совместимость GetKeyState

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

User32.lib

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz