Поделиться через


Структура KEYBDINPUT (winuser.h)

Содержит сведения о событии имитации клавиатуры.

Синтаксис

typedef struct tagKEYBDINPUT {
  WORD      wVk;
  WORD      wScan;
  DWORD     dwFlags;
  DWORD     time;
  ULONG_PTR dwExtraInfo;
} KEYBDINPUT, *PKEYBDINPUT, *LPKEYBDINPUT;

Члены

wVk

Тип: WORD

Код виртуального ключа. Код должен быть значением в диапазоне от 1 до 254. Если элемент dwFlags указывает KEYEVENTF_UNICODE, wVk должен иметь значение 0.

wScan

Тип: WORD

Код аппаратного сканирования ключа. Если dwFlags указывает KEYEVENTF_UNICODE, wScan задает символ Юникода, который должен быть отправлен в приложение переднего плана.

dwFlags

Тип: DWORD

Задает различные аспекты нажатия клавиши. Этот элемент может быть определенным сочетанием следующих значений.

Значение Значение
KEYEVENTF_EXTENDEDKEY
0x0001
Если указано, код проверки wScan состоит из последовательности из двух байтов, где первый байт имеет значение 0xE0. Дополнительные сведения см. в разделе Флаг расширенного ключа .
KEYEVENTF_KEYUP
0x0002
Если этот параметр указан, ключ освобождается. Если не указано, нажимается клавиша.
KEYEVENTF_SCANCODE
0x0008
Если этот параметр указан, wScan определяет ключ, и wVk игнорируется.
KEYEVENTF_UNICODE
0x0004
Если этот параметр указан, система синтезирует VK_PACKET нажатие клавиши. Параметр wVk должен быть равен нулю. Этот флаг можно объединить только с флагом KEYEVENTF_KEYUP . Дополнительные сведения см. в разделе «Примечания».

time

Тип: DWORD

Метка времени для события в миллисекундах. Если этот параметр равен нулю, система предоставит собственную метку времени.

dwExtraInfo

Тип: ULONG_PTR

Дополнительное значение, связанное с нажатием клавиши. Для получения этих сведений используйте функцию GetMessageExtraInfo .

Комментарии

INPUT_KEYBOARD поддерживает неключевые методы ввода, такие как распознавание рукописного ввода или распознавание голоса, как если бы это был текстовый ввод с помощью флага KEYEVENTF_UNICODE . Если указано KEYEVENTF_UNICODE , SendInput отправляет WM_KEYDOWN или WM_KEYUP сообщение в очередь сообщений потока переднего плана с wParam , равным VK_PACKET. Когда GetMessage или PeekMessage получает это сообщение, передав его в TranslateMessage , публикует WM_CHAR сообщение с символом Юникода, изначально заданным wScan. Этот символ Юникода будет автоматически преобразован в соответствующее значение ANSI, если он будет размещен в окне ANSI.

Установите флаг KEYEVENTF_SCANCODE , чтобы определить ввод с помощью клавиатуры с точки зрения кода сканирования. Это полезно для имитации физического нажатия клавиши независимо от того, какая клавиатура используется в настоящее время. Вы также можете передать флаг KEYEVENTF_EXTENDEDKEY , если код сканирования является расширенным ключом. Значение виртуальной клавиши может изменяться в зависимости от текущей раскладки клавиатуры или от того, какие другие клавиши были нажаты, но код сканирования всегда будет одинаковым.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть winuser.h (включая Windows.h)

См. также раздел