Структура 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
Задает различные аспекты нажатия клавиши. Этот элемент может быть определенным сочетанием следующих значений.
Значение | Значение |
---|---|
|
Если указано, код проверки wScan состоит из последовательности из двух байтов, где первый байт имеет значение 0xE0. Дополнительные сведения см. в разделе Флаг расширенного ключа . |
|
Если этот параметр указан, ключ освобождается. Если не указано, нажимается клавиша. |
|
Если этот параметр указан, wScan определяет ключ, и wVk игнорируется. |
|
Если этот параметр указан, система синтезирует 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) |