INFO: Distinguishing Between Keyboard Keys and their Keypad Duplicates

ID: Q96242


The information in this article applies to:
  • Microsoft Win32 Application Programming Interface (API), used with:
    • Microsoft Windows NT versions 3.1, 3.5, 3.51, 4.0
    • Microsoft Windows 95
    • 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 kbNTOS310 kbNTOS350 kbNTOS351 kbNTOS400 kbWinOS2000 kbWinOS95 kbDSupport kbGrpKernBase
Version : winnt:3.1,3.5,3.51,4.0
Platform : winnt
Issue type : kbinfo


Last Reviewed: January 11, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.