Функция GetKeyboardState

Declare Function GetKeyboardState Lib "user32.dll" (pbKeyState As Byte) As Long

Платформа

GetKeyboardState отыскивает состояние каждой клавиши на клавиатуре и размещает информацию в массив. Каждый элемент массива с 256 элементами идентифицирует информацию относительно виртуальной клавиши, чей код виртуальной клавиши соответствует индексу элемента.На вашей клавиатуре нет 256 клавиш?Это сделано с прицелом на будущее. Если установлен бит &H1 , та клавиша выключена. Если установлен бит &H80, клавиша в настоящее время включена.

Примечание:Обратите внимание,что функции передается массив,указывая его первый элемент.

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

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля.

Параметры

pbKeyState
Массив байтов с 256 элементами, который получает информацию состояния для всех виртуальных клавиш. Каждая клавиша идентифицирована элементом, соответствующим коду виртуальной клавиши. Windows NT, 2000: В дополнение к виртуальным клавишам, массив также получает информацию, способную различать левый и правый клавиши Ctrl, Alt, и SHIFT, которые помещены в массив в следующих индексах:
VK_LSHIFT = &HA0
Левый Shift.
VK_RSHIFT = &HA1
Правыйt Shift.
VK_LCONTROL = &HA2
Левый Ctrl.
VK_RCONTROL = &HA3
Правый Ctrl.
VK_LMENU = &HA4
Левый Alt.
VK_RMENU = &HA5
Правый Alt.

Пример

' Установим статус для каждой клавиши на клавиатуре
' на "не включено"
Dim keystates(0 To 255) As Byte  ' содержит статус всех клавиш в массиве
Dim c As Integer  ' счетчик
Dim retval As Long  ' возвращаемое значение

' Сначала, получим текущее состояние клавиатуры.
retval = GetKeyboardState(keystates(0))

' Теперь, установим бит для всех клавиш в 0.
For c = 0 To 255
  ' Удостоверимся,что бит &H1 не установлен.
  keystates(c) = keystates(c) And (Not &H1)
Next c

' Наконец, установим это к текущему состоянию клавиатуры.
retval = SetKeyboardState(keystates(0))

Схожие функции
GetKeyState, SetKeyboardState
Категория
Клавиатура

В начало