Функция keybd_event синтезирует нажатие клавиши. Система может использовать такое синтезируемое нажатие клавиши, чтобы создать сообщение WM_KEYUP или WM_KEYDOWN. Вызывает функцию keybd_event программа обработки прерываний драйвера клавиатуры.
Windows NT/2000/XP: Эта функция была заменена. Используйте SendInput вместо нее.
Синтаксис
VOID keybd_event( BYTE bVk, BYTE bScan, DWORD dwFlags, PTR dwExtraInfo ); |
Параметры
bVk
[in] Определяет код виртуальной клавиши. Код должен быть значением в диапазоне от 1 до 254. Полный список см. в статье Коды виртуальных клавиш.bScan
Этот параметр не используется.
dwFlags
[in] Определяет различные виды операций функции. Этот параметр может состоять из одного или нескольких ниже следующих значений.|
Флажок |
Предназначение |
|
KEYEVENTF_EXTENDEDKEY |
Если он установлен, скэн-коду предшествует префиксный байт, имеющий значение 0xE0 (224). |
|
KEYEVENTF_KEYUP |
Если он установлен, клавиша была отпущена. Если не установлен, клавиша была нажата. |
dwExtraInfo
[in] Определяет дополнительное значение, связанное с нажатием клавиши.Возвращаемые значения
У этой функции нет возвращаемых значений.
Замечания
Прикладная программа может смоделировать нажатие клавиши PrintScreen, чтобы получить снимок экрана и сохранить его в буфере обмена. Чтобы сделать это, вызовите keybd_event с установленным параметром bVk в VK_SNAPSHOT.
Windows NT/2000/XP: Функция keybd_event может переключить клавиши NUM LOCK, CAPS LOCK и SCROLL LOCK.
Windows 95/98/Me: Функция keybd_event может переключить только клавиши CAPS LOCK и SCROLL LOCK. Она не может переключить клавишу NUM LOCK.
Ниже следующее типовая программа переключает индикатор NUM LOCK, используя функцию keybd_event () виртуальной клавишей VK_NUMLOCK. Требуется Булево значение, которое указывает, должен ли индикатор быть выключен - (ЛОЖЬ (FALSE)) или включен - (ИСТИНА (TRUE)). Та же самая методика может использоваться для клавиши CAPS LOCK (VK_CAPITAL) и клавиши SCROLL LOCK (VK_SCROLL).
Демонстрационный пример
|
#include <windows.h> void SetNumLock( BOOL bState )
BYTE keyState[256]; GetKeyboardState((LPBYTE)&keyState);if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||(!bState && (keyState[VK_NUMLOCK] & 1)) )
|
Смотри также
Обзор Ввод данных с клавиатуры, GetAsyncKeyState, GetKeyState, MapVirtualKey, SetKeyboardState
|
Размещение и совместимость keybd_event |
|
|
Windows. NET Server |
Да |
|
Windows XP |
Да |
|
Windows 2000 |
Да |
|
Windows NT |
Да версии 3.1 и выше |
|
Windows Me |
Да |
|
Windows 98 |
Да |
|
Windows 95 |
Да |
|
Используемая библиотека |
User32.lib |
|
Заголовочный файл |
|
|
- объявлено в |
Winuser.h |
|
- включено в |
Windows.h |
|
Unicode |
Нет |
|
Замечания по платформе |
Не имеется |