Функция GetAsyncKeyState 


 Функция GetAsyncKeyState определяет, является ли клавиша отпущенной или нажатой во время вызова функции и была ли клавиша нажата после предыдущего вызова GetAsyncKeyState.

Синтаксис

SHORT GetAsyncKeyState(
    int vKey
);

Параметры

vKey
[in] Устанавливает одно из 256 возможных кодов виртуальной клавиши. Подробную информацию см. в статье Коды виртуальной клавиши.

Windows NT/2000/XP: Вы можете использовать лево- и  правосторонние константы, чтобы определить некоторые клавиши. См. раздел Замечаний в дальнейшей информации.

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

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

Windows NT/2000/XP: Возвращаемое значение равно нулю для ниже перечисленных случаев:

Windows 95/98/Me: Возвращаемое значение - общий асинхронный режим для каждой виртуальной клавиши. Система не проверяет, какой поток имеет фокус клавиатуры.

Windows 95/98/Me: Windows 95 не поддерживают лево-  и правосторонние константы. Если Вы вызываете функцию GetAsyncKeyState с этими константами, возвращаемое значение равно нулю.

Замечания

Функция GetAsyncKeyState работает с кнопками мыши. Однако, она проверяет состояние физических кнопок мыши, а не логических кнопок мыши, в которые преобразуются физические кнопки. Например, вызов GetAsyncKeyState (VK_LBUTTON) всегда возвращает состояние левосторонней физической кнопки мыши, независимо от того, преобразована она в левостороннюю или правостороннюю логическую кнопку мыши. Вы можете определить текущее преобразование системы физических кнопок мыши в логические кнопки мыши при помощи вызова

GetSystemMetrics(SM_SWAPBUTTON) 

который возвращает значение ИСТИНА (TRUE), если кнопки мыши менялись местами.

Хотя самый младший значащий бит возвращаемого значения и указывает, была ли клавиша нажата начиная с последнего запроса, но благодаря природе приоритетной многозадачности  Windows, другое приложение может вызвать функцию GetAsyncKeyState и принять "недавно нажатый" бит вместо вашей программы. Характер изменения самого младшего значащего бита возвращаемого значения сохраняется строго для совместимости с 16-битовыми приложениями Windows (которые являются неприоритетными) и на него нельзя опираться.

Вы можете использовать константы кода виртуальной клавиши VK_SHIFT, VK_CONTROL и VK_MENU как значения для параметра vKey. Они дают состояние клавиш SHIFT, CTRL или  ALT, не разделяя их на левые и правые.

Windows NT/2000/XP: Вы можете использовать ниже следующее константы кода виртуальной клавиши как значения для vKey, чтобы различить между левыми и правыми экземплярами этих клавиш.

Код Значение
VK_LSHIFT VK_RSHIFT
VK_LCONTROL VK_RCONTROL
VK_LMENU VK_RMENU

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

Смотри также

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

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

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