Структура KEYBDINPUT содержит информацию об имитируемом событии клавиатуры.
Синтаксис
typedef struct tagKEYBDINPUT { WORD wVk; WORD wScan; DWORD dwFlags; DWORD time; ULONG_PTR dwExtraInfo; } KEYBDINPUT, *PKEYBDINPUT; |
Члены структуры
wVk
Устанавливает код виртуальной клавиши. Код должен быть значением в диапазоне 1 - 254. Заголовочный файл Winuser.h предоставляет на каждое значение макроопределения (VK_ *). Если член структуры dwFlags определяется как KEYEVENTF_UNICODE, член структуры wVk должен быть 0.
wScan
Устанавливает аппаратный скэн-код для клавиши. Если член структуры dwFlags определяется как KEYEVENTF_UNICODE, член структуры wScan определяет символ Unicode, который должен отправиться активному приложению.
dwFlags
Устанавливает различные виды нажатия клавиши. Этот член может быть определенными комбинациями нижеследующих значений.
Значение | Предназначение |
KEYEVENTF_EXTENDEDKEY | Если определено, то скэн-коду предшествует префиксный байт, который имеет величину 0xE0 (224). |
KEYEVENTF_KEYUP | Если определено, то клавиша отпускается. Если не определено, то клавиша нажимается. |
KEYEVENTF_SCANCODE | Если определено, то член структуры wScan идентифицирует клавишу, а член структуры wVk игнорируется. |
KEYEVENTF_UNICODE | Windows 2000/XP: Если определено, то система синтезирует нажатие клавиши VK_PACKET . Параметр WVk должен равняться нулю. Этот флажок может быть объединен только с флажком KEYEVENTF_KEYUP. Для получения дополнительной информации, см. раздел Замечаний. |
time
Отметка времени для события, в миллисекундах. Если этот параметр равняется нулю, система предоставляет свою собственную отметку времени.
dwExtraInfo
Устанавливает дополнительное значение, связанное с нажатием клавиши. Используйте функцию GetMessageExtraInfo, чтобы получить эту информацию.
Замечания
Windows 2000/XP: Флажок INPUT_KEYBOARD поддерживает не клавиатурные методы ввода данных такие как распознавание почерка или распознавание голоса, как будто это был текстовой ввод, используя флажок KEYEVENTF_UNICODE. Если KEYEVENTF_UNICODE устанавливается, функция SendInput отправляет сообщение WM_KEYDOWN или WM_KEYUP в очередь сообщений активного потока с параметром wParam, равным VK_PACKET. Как только функция GetMessage или PeekMessage получает это сообщение, оно переправляется в функцию TranslateMessage, которое посылает сообщение WM_CHAR с символом Unicode, первоначально заданным параметром wScan. Этот символ Unicode будет автоматически преобразован в соответствующее значение ANSI, если сообщение посылается к окну ANSI.
Windows 2000/XP: Установка флажка KEYEVENTF_SCANCODE определяет ввод с клавиатуры в терминах скэн-кода. Это практикуется при имитации физического нажатия клавиши, независимо от того используется или нет клавиатура в настоящий момент. Значение виртуальной клавиши клавиши может измениться в зависимости от текущей раскладки клавиатуры или от того, что другие клавиши были нажаты, но скэн-код всегда будет тот же самый.
Смотри также
Обзор Ввод данных с клавиатуры, GetMessageExtraInfo, SendInput, INPUT
Размещение и совместимость KEYBDINPUT |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 4.0 Service Pack 3 |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Нет |
Импортируемая библиотека |
Нет |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |