Export (0) Print
Expand All

KEYBDINPUT structure

Contains information about a simulated keyboard event.

Syntax


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

Members

wVk

Type: WORD

A virtual-key code. The code must be a value in the range 1 to 254. If the dwFlags member specifies KEYEVENTF_UNICODE, wVk must be 0.

wScan

Type: WORD

A hardware scan code for the key. If dwFlags specifies KEYEVENTF_UNICODE, wScan specifies a Unicode character which is to be sent to the foreground application.

dwFlags

Type: DWORD

Specifies various aspects of a keystroke. This member can be certain combinations of the following values.

ValueMeaning
KEYEVENTF_EXTENDEDKEY
0x0001

If specified, the scan code was preceded by a prefix byte that has the value 0xE0 (224).

KEYEVENTF_KEYUP
0x0002

If specified, the key is being released. If not specified, the key is being pressed.

KEYEVENTF_SCANCODE
0x0008

If specified, wScan identifies the key and wVk is ignored.

KEYEVENTF_UNICODE
0x0004

If specified, the system synthesizes a VK_PACKET keystroke. The wVk parameter must be zero. This flag can only be combined with the KEYEVENTF_KEYUP flag. For more information, see the Remarks section.

 

time

Type: DWORD

The time stamp for the event, in milliseconds. If this parameter is zero, the system will provide its own time stamp.

dwExtraInfo

Type: ULONG_PTR

An additional value associated with the keystroke. Use the GetMessageExtraInfo function to obtain this information.

Remarks

INPUT_KEYBOARD supports nonkeyboard-input methods—such as handwriting recognition or voice recognition—as if it were text input by using the KEYEVENTF_UNICODE flag. If KEYEVENTF_UNICODE is specified, SendInput sends a WM_KEYDOWN or WM_KEYUP message to the foreground thread's message queue with wParam equal to VK_PACKET. Once GetMessage or PeekMessage obtains this message, passing the message to TranslateMessage posts a WM_CHAR message with the Unicode character originally specified by wScan. This Unicode character will automatically be converted to the appropriate ANSI value if it is posted to an ANSI window.

Set the KEYEVENTF_SCANCODE flag to define keyboard input in terms of the scan code. This is useful to simulate a physical keystroke regardless of which keyboard is currently being used. The virtual key value of a key may alter depending on the current keyboard layout or what other keys were pressed, but the scan code will always be the same.

Requirements

Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]

Header

Winuser.h (include Windows.h)

See also

Reference
GetMessageExtraInfo
INPUT
SendInput
Conceptual
Keyboard Input

 

 

Community Additions

ADD
Show:
© 2014 Microsoft