Keyboard scan codes
Special physical keys are encoded with the DOS scan codes for these keys in the second byte of the TKeyEvent type. A complete list of scan codes can be found in the below table. This is the list of keys that is used by the default key event translation mechanism. When writing a keyboard driver, either these constants should be returned by the various key event functions, or the TranslateKeyEvent hook should be implemented by the driver.
Code | Key | Code | Key | Code | Key |
---|---|---|---|---|---|
00 | NoKey | 3D | F3 | 70 | ALT-F9 |
01 | ALT-Esc | 3E | F4 | 71 | ALT-F10 |
02 | ALT-Space | 3F | F5 | 72 | CTRL-PrtSc |
04 | CTRL-Ins | 40 | F6 | 73 | CTRL-Left |
05 | SHIFT-Ins | 41 | F7 | 74 | CTRL-Right |
06 | CTRL-Del | 42 | F8 | 75 | CTRL-end |
07 | SHIFT-Del | 43 | F9 | 76 | CTRL-PgDn |
08 | ALT-Back | 44 | F10 | 77 | CTRL-Home |
09 | ALT-SHIFT-Back | 47 | Home | 78 | ALT-1 |
0F | SHIFT-Tab | 48 | Up | 79 | ALT-2 |
10 | ALT-Q | 49 | PgUp | 7A | ALT-3 |
11 | ALT-W | 4B | Left | 7B | ALT-4 |
12 | ALT-E | 4C | Center | 7C | ALT-5 |
13 | ALT-R | 4D | Right | 7D | ALT-6 |
14 | ALT-T | 4E | ALT-GrayPlus | 7E | ALT-7 |
15 | ALT-Y | 4F | end | 7F | ALT-8 |
16 | ALT-U | 50 | Down | 80 | ALT-9 |
17 | ALT-I | 51 | PgDn | 81 | ALT-0 |
18 | ALT-O | 52 | Ins | 82 | ALT-Minus |
19 | ALT-P | 53 | Del | 83 | ALT-Equal |
1A | ALT-LftBrack | 54 | SHIFT-F1 | 84 | CTRL-PgUp |
1B | ALT-RgtBrack | 55 | SHIFT-F2 | 85 | F11 |
1E | ALT-A | 56 | SHIFT-F3 | 86 | F12 |
1F | ALT-S | 57 | SHIFT-F4 | 87 | SHIFT-F11 |
20 | ALT-D | 58 | SHIFT-F5 | 88 | SHIFT-F12 |
21 | ALT-F | 59 | SHIFT-F6 | 89 | CTRL-F11 |
22 | ALT-G | 5A | SHIFT-F7 | 8A | CTRL-F12 |
23 | ALT-H | 5B | SHIFT-F8 | 8B | ALT-F11 |
24 | ALT-J | 5C | SHIFT-F9 | 8C | ALT-F12 |
25 | ALT-K | 5D | SHIFT-F10 | 8D | CTRL-Up |
26 | ALT-L | 5E | CTRL-F1 | 8E | CTRL-Minus |
27 | ALT-SemiCol | 5F | CTRL-F2 | 8F | CTRL-Center |
28 | ALT-Quote | 60 | CTRL-F3 | 90 | CTRL-GreyPlus |
29 | ALT-OpQuote | 61 | CTRL-F4 | 91 | CTRL-Down |
2B | ALT-BkSlash | 62 | CTRL-F5 | 94 | CTRL-Tab |
2C | ALT-Z | 63 | CTRL-F6 | 97 | ALT-Home |
2D | ALT-X | 64 | CTRL-F7 | 98 | ALT-Up |
2E | ALT-C | 65 | CTRL-F8 | 99 | ALT-PgUp |
2F | ALT-V | 66 | CTRL-F9 | 9B | ALT-Left |
30 | ALT-B | 67 | CTRL-F10 | 9D | ALT-Right |
31 | ALT-N | 68 | ALT-F1 | 9F | ALT-end |
32 | ALT-M | 69 | ALT-F2 | A0 | ALT-Down |
33 | ALT-Comma | 6A | ALT-F3 | A1 | ALT-PgDn |
34 | ALT-Period | 6B | ALT-F4 | A2 | ALT-Ins |
35 | ALT-Slash | 6C | ALT-F5 | A3 | ALT-Del |
37 | ALT-GreyAst | 6D | ALT-F6 | A5 | ALT-Tab |
3B | F1 | 6E | ALT-F7 | ||
3C | F2 | 6F | ALT-F8 |
A list of scan codes for special keys and combinations with the SHIFT, ALT and CTRL keys can be found in the following table: They are for quick reference only.
Key | Code | SHIFT-Key | CTRL-Key | Alt-Key |
---|---|---|---|---|
NoKey | 00 | |||
F1 | 3B | 54 | 5E | 68 |
F2 | 3C | 55 | 5F | 69 |
F3 | 3D | 56 | 60 | 6A |
F4 | 3E | 57 | 61 | 6B |
F5 | 3F | 58 | 62 | 6C |
F6 | 40 | 59 | 63 | 6D |
F7 | 41 | 5A | 64 | 6E |
F8 | 42 | 5B | 65 | 6F |
F9 | 43 | 5C | 66 | 70 |
F10 | 44 | 5D | 67 | 71 |
F11 | 85 | 87 | 89 | 8B |
F12 | 86 | 88 | 8A | 8C |
Home | 47 | 77 | 97 | |
Up | 48 | 8D | 98 | |
PgUp | 49 | 84 | 99 | |
Left | 4B | 73 | 9B | |
Center | 4C | 8F | ||
Right | 4D | 74 | 9D | |
end | 4F | 75 | 9F | |
Down | 50 | 91 | A0 | |
PgDn | 51 | 76 | A1 | |
Ins | 52 | 05 | 04 | A2 |
Del | 53 | 07 | 06 | A3 |
Tab | 8 | 0F | 94 | A5 |
GreyPlus | 90 | 4E |