The complete virtual-key code set consists of 256 byte values in the range 0 to 255. Most, but not all, of the values used by standard drivers are in the range 0 to 127. There is a loose distinction between "standard" keys, which do not vary much, and "OEM" keys, which do vary from keyboard to keyboard.
For full Windows functionality, a keyboard driver must provide the following virtual keys:
Virtual-key code | Description |
---|---|
VK_0 through VK_9 | Number keys (not on numeric keypad): 0 through 9 |
VK_A through VK_Z | Letter keys: A through Z |
VK_BACK | BACKSPACE key |
VK_CONTROL | CTRL key |
VK_DELETE | DELETE key |
VK_DOWN | Down direction key |
VK_END | END key |
VK_ESCAPE | ESC key |
VK_F1 through VK_F10 | F1 through F10 keys |
VK_HOME | HOME key |
VK_INSERT | INSERT key |
VK_LEFT | Left direction key |
VK_MENU | ALT key |
VK_NEXT | PAGE DOWN key |
VK_PRIOR | PAGE UP key |
VK_RIGHT | Right direction key |
VK_SHIFT | Left and right SHIFT keys |
VK_SNAPSHOT | PRINTSCREEN key |
VK_SPACE | SPACE key |
VK_TAB | TAB key |
VK_UP | Up direction key |
Shift keys must be available in the combinations unshifted, SHIFT, CTRL, and CTRL+ALT.
Most keyboards, the virtual-key codes VK_INSERT, VK_DELETE, VK_HOME, VK_END, VK_PRIOR, and VK_NEXT are generated on the numeric keypad only if NUMLOCK is off.