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

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

Синтаксис

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

Members

wVk

Тип: WORD

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

wScan

Тип: WORD

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

dwFlags

Тип: DWORD

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

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

time

Тип: DWORD

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

dwExtraInfo

Тип: ULONG_PTR

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

Замечания

INPUT_KEYBOARD поддерживает методы, отличные отkeyboard-input, такие как распознавание рукописного ввода или распознавание голоса, как если бы это были текстовые входные данные с помощью флага 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 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
Header winuser.h (включая Windows.h)

См. также