Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
GetKeyState определяет текущее состояние клавиши - нажата ли клавиша в настоящее время или нет, и определяет, нажаты ли в это время клавиши-переключатели
Функция возвращает значение типа Integer, которое содержит в младшем разряде 1, если клавиша-переключатель включена, и 0, если выключена. Единица в старшем разряде, показывает, что клавиша в данный момент нажата.
' Отобразим текущее состояние клавиши 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