Microsoft KB Archive/96242

{|
 * width="100%"|

INFO: Distinguishing Between Keyboard Keys and their Keypad Duplicates

 * }

Q96242

-

The information in this article applies to:


 * Microsoft Win32 Application Programming Interface (API), used with:
 * Microsoft Windows NT Server versions 3.1, 3.5, 3.51, 4.0
 * Microsoft Windows NT Workstation versions 3.1, 3.5, 3.51, 4.0
 * Microsoft Windows 95
 * the operating system: Microsoft Windows 2000

-

SUMMARY
It is possible using ReadConsoleInput or PeekConsole to distinguish between a key on the main keyboard and it's duplicate key on the numeric keypad. The KEY_EVENT_RECORD structure in the INPUT_RECORD structure must be used to distinguish between the two keys.

MORE INFORMATION
The following example illustrates what the KEY_EVENT_RECORD structure is filled with after a keyboard ENTER key versus a numeric keypad ENTER key is pressed.

Keyboard ENTER Key
  KeyEvent.wRepeatCount     = 1 KeyEvent.wVirtualKeyCode = 13 KeyEvent.wVirtualScanCode = 28 KeyEvent.dwControlKeyState= 00000000

Numeric Keypad ENTER Key
  KeyEvent.wRepeatCount     = 1 KeyEvent.wVirtualKeyCode = 13 KeyEvent.wVirtualScanCode = 28 KeyEvent.dwControlKeyState= 00000100 In the case of the numeric keypad key, in dwControlKeyState, the ENHANCED_KEY bit is set.

Additional query words: 3.10 3.50

Keywords : kbConsole kbKernBase kbOSWinNT310 kbOSWinNT350 kbOSWinNT351 kbOSWinNT400 kbOSWin2000 kbOSWin95 kbDSupport kbGrpDSKernBase

Issue type : kbinfo

Technology : kbAudDeveloper kbWin32sSearch kbWin32API