Функция GetKeyState

Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

GetKeyState определяет текущее состояние клавиши - нажата ли клавиша в настоящее время или нет, и определяет, нажаты ли в это время клавиши-переключатели

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

Функция возвращает значение типа Integer, которое содержит в младшем разряде 1, если клавиша-переключатель включена, и 0, если выключена. Единица в старшем разряде, показывает, что клавиша в данный момент нажата.

Параметры

nVirtKey
Код виртуальной клавиши. Это может быть один из следующих флажков, которые различают левый и правый Ctrl, Alt, и SHIFT:
VK_LSHIFT = &HA0
Левый Shift
VK_RSHIFT = &HA1
Правый Shift
VK_LCONTROL = &HA2
Левый Ctrl
VK_RCONTROL = &HA3
Правый Ctrl
VK_LMENU = &HA4
Левый Alt
VK_RMENU = &HA5
Правый Alt

Пример

' Отобразим текущее состояние клавиши ENTER
Dim keystate As Long  ' состояние клавиши

' Читаем текущее состояние клавиши ENTER
keystate = GetKeyState(VK_RETURN)

' Отобразим состояние переключателя клавиши ENTER
If (keystate And &H1) = &H1 Then
  Debug.Print "Клавиша ENTER в настоящее время переключается"
Else
  Debug.Print "Клавиша ENTER в настоящее время не переключается"
End If
' Нажимается ли Клавиша ENTER или нет
If (keystate And &H80) = &H80 Then
  Debug.Print "Клавиша ENTER в настоящее время нажата"
Else
  Debug.Print "Клавиша ENTER сейчас не нажата"
End If

Смотри также

GetAsyncKeyState, GetKeyboardState

Категория

Клавиатура