функция keybd_event (winuser.h)
Синтезирует нажатие клавиши. Система может использовать такой синтезированный нажатие клавиши для создания WM_KEYUP или WM_KEYDOWN сообщения. Обработчик прерываний драйвера клавиатуры вызывает функцию keybd_event .
Синтаксис
void keybd_event(
[in] BYTE bVk,
[in] BYTE bScan,
[in] DWORD dwFlags,
[in] ULONG_PTR dwExtraInfo
);
Параметры
[in] bVk
Тип: BYTE
Код виртуального ключа. Код должен быть значением в диапазоне от 1 до 254. Полный список см. в разделе Коды виртуальных ключей.
[in] bScan
Тип: BYTE
Код аппаратного сканирования ключа.
[in] dwFlags
Тип: DWORD
Управляет различными аспектами работы функции. Этот параметр может быть одним или несколькими из следующих значений.
[in] dwExtraInfo
Тип: ULONG_PTR
Дополнительное значение, связанное с росчерком клавиши.
Возвращаемое значение
None
Remarks
Приложение может имитировать нажатие клавиши PRINTSCRN, чтобы получить snapshot экрана и сохранить его в буфер обмена. Для этого вызовите keybd_event с параметром bVk , равным VK_SNAPSHOT.
Примеры
Следующий пример программы переключает свет 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)) )
{
// Simulate a key press
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | 0,
0 );
// Simulate a key release
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
0);
}
}
void main()
{
SetNumLock( TRUE );
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winuser.h (включая Windows.h) |
Библиотека | User32.lib |
DLL | User32.dll |