Keys XML
Keys XML
html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
177 /**************************************************************************** * * DirectInput keyboard scan codes * ****************************************************************************/ #define DIK_ESCAPE 0x01 #define DIK_1 0x02 #define DIK_2 0x03 #define DIK_3 0x04 #define DIK_4 0x05 #define DIK_5 0x06 #define DIK_6 0x07 #define DIK_7 0x08 #define DIK_8 0x09 #define DIK_9 0x0A #define DIK_0 0x0B #define DIK_MINUS 0x0C /* - on main keyboard */ #define DIK_EQUALS 0x0D #define DIK_BACK 0x0E /* backspace */ #define DIK_TAB 0x0F #define DIK_Q 0x10 #define DIK_W 0x11 #define DIK_E 0x12 #define DIK_R 0x13 #define DIK_T 0x14 #define DIK_Y 0x15 #define DIK_U 0x16 #define DIK_I 0x17 #define DIK_O 0x18 #define DIK_P 0x19 #define DIK_LBRACKET 0x1A #define DIK_RBRACKET 0x1B #define DIK_RETURN 0x1C /* Enter on main keyboard */ #define DIK_LCONTROL 0x1D #define DIK_A 0x1E #define DIK_S 0x1F #define DIK_D 0x20 #define DIK_F 0x21 #define DIK_G 0x22 #define DIK_H 0x23 #define DIK_J 0x24 #define DIK_K 0x25 #define DIK_L 0x26 #define DIK_SEMICOLON 0x27 #define DIK_APOSTROPHE 0x28 #define DIK_GRAVE 0x29 /* accent grave */ #define DIK_LSHIFT 0x2A #define DIK_BACKSLASH 0x2B #define DIK_Z 0x2C #define DIK_X 0x2D #define DIK_C 0x2E #define DIK_V 0x2F #define DIK_B 0x30 #define DIK_N 0x31 #define DIK_M 0x32 #define DIK_COMMA 0x33 #define DIK_PERIOD 0x34 /* . on main keyboard */ #define DIK_SLASH 0x35 /* / on main keyboard */ #define DIK_RSHIFT 0x36
#define DIK_MULTIPLY #define DIK_LMENU #define DIK_SPACE #define DIK_CAPITAL #define DIK_F1 #define DIK_F2 #define DIK_F3 #define DIK_F4 #define DIK_F5 #define DIK_F6 #define DIK_F7 #define DIK_F8 #define DIK_F9 #define DIK_F10 #define DIK_NUMLOCK #define DIK_SCROLL #define DIK_NUMPAD7 #define DIK_NUMPAD8 #define DIK_NUMPAD9 #define DIK_SUBTRACT #define DIK_NUMPAD4 #define DIK_NUMPAD5 #define DIK_NUMPAD6 #define DIK_ADD #define DIK_NUMPAD1 #define DIK_NUMPAD2 #define DIK_NUMPAD3 #define DIK_NUMPAD0 #define DIK_DECIMAL #define DIK_OEM_102 ) */ #define DIK_F11 #define DIK_F12 #define DIK_F13 #define DIK_F14 #define DIK_F15 #define DIK_KANA #define DIK_ABNT_C1 #define DIK_CONVERT #define DIK_NOCONVERT #define DIK_YEN #define DIK_ABNT_C2 #define DIK_NUMPADEQUALS #define DIK_PREVTRACK e keyboard) */ #define DIK_AT #define DIK_COLON #define DIK_UNDERLINE #define DIK_KANJI #define DIK_STOP #define DIK_AX #define DIK_UNLABELED #define DIK_NEXTTRACK #define DIK_NUMPADENTER #define DIK_RCONTROL #define DIK_MUTE #define DIK_CALCULATOR #define DIK_PLAYPAUSE #define DIK_MEDIASTOP #define DIK_VOLUMEDOWN
0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53 0x56 0x57 0x58 0x64 0x65 0x66 0x70 0x73 0x79 0x7B 0x7D 0x7E 0x8D 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x99 0x9C 0x9D 0xA0 0xA1 0xA2 0xA4 0xAE
/* Scroll Lock */
/* - on numeric keypad */
/* + on numeric keypad */
/* /* /* /* /* /* /* /* /* /* /*
(NEC PC98) */ (NEC PC98) */ (NEC PC98) */ (Japanese keyboard) */ /? on Brazilian keyboard */ (Japanese keyboard) */ (Japanese keyboard) */ (Japanese keyboard) */ Numpad . on Brazilian keyboard */ = on numeric keypad (NEC PC98) */ Previous Track (DIK_CIRCUMFLEX on Japanes */ */ */ */ */ */ */
/* (NEC PC98) /* (NEC PC98) /* (NEC PC98) /* (Japanese keyboard) /* (NEC PC98) /* (Japan AX) /* (J3100) /* Next Track */ /* Enter on numeric keypad */ /* /* /* /* /* Mute */ Calculator */ Play / Pause */ Media Stop */ Volume - */
#define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define
DIK_VOLUMEUP DIK_WEBHOME DIK_NUMPADCOMMA DIK_DIVIDE DIK_SYSRQ DIK_RMENU DIK_PAUSE DIK_HOME DIK_UP DIK_PRIOR DIK_LEFT DIK_RIGHT DIK_END DIK_DOWN DIK_NEXT DIK_INSERT DIK_DELETE DIK_LWIN DIK_RWIN DIK_APPS DIK_POWER DIK_SLEEP DIK_WAKE DIK_WEBSEARCH DIK_WEBFAVORITES DIK_WEBREFRESH DIK_WEBSTOP DIK_WEBFORWARD DIK_WEBBACK DIK_MYCOMPUTER DIK_MAIL DIK_MEDIASELECT
0xB0 0xB2 0xB3 0xB5 0xB7 0xB8 0xC5 0xC7 0xC8 0xC9 0xCB 0xCD 0xCF 0xD0 0xD1 0xD2 0xD3 0xDB 0xDC 0xDD 0xDE 0xDF 0xE3 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED
/* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /*
Volume + */ Web home */ , on numeric keypad (NEC PC98) */ / on numeric keypad */ right Alt */ Pause */ Home on arrow keypad */ UpArrow on arrow keypad */ PgUp on arrow keypad */ LeftArrow on arrow keypad */ RightArrow on arrow keypad */ End on arrow keypad */ DownArrow on arrow keypad */ PgDn on arrow keypad */ Insert on arrow keypad */ Delete on arrow keypad */ Left Windows key */ Right Windows key */ AppMenu key */ System Power */ System Sleep */ System Wake */ Web Search */ Web Favorites */ Web Refresh */ Web Stop */ Web Forward */ Web Back */ My Computer */ Mail */ Media Select */
/* * Alternate names for keys, to facilitate transition from DOS. */ #define DIK_BACKSPACE DIK_BACK /* backspace */ #define DIK_NUMPADSTAR DIK_MULTIPLY /* * on numeric keypad */ #define DIK_LALT DIK_LMENU /* left Alt */ #define DIK_CAPSLOCK DIK_CAPITAL /* CapsLock */ #define DIK_NUMPADMINUS DIK_SUBTRACT /* - on numeric keypad */ #define DIK_NUMPADPLUS DIK_ADD /* + on numeric keypad */ #define DIK_NUMPADPERIOD DIK_DECIMAL /* . on numeric keypad */ #define DIK_NUMPADSLASH DIK_DIVIDE /* / on numeric keypad */ #define DIK_RALT DIK_RMENU /* right Alt */ #define DIK_UPARROW DIK_UP /* UpArrow on arrow keypad */ #define DIK_PGUP DIK_PRIOR /* PgUp on arrow keypad */ #define DIK_LEFTARROW DIK_LEFT /* LeftArrow on arrow keypad */ #define DIK_RIGHTARROW DIK_RIGHT /* RightArrow on arrow keypad */ #define DIK_DOWNARROW DIK_DOWN /* DownArrow on arrow keypad */ #define DIK_PGDN DIK_NEXT /* PgDn on arrow keypad */ /* * Alternate names for keys originally not used on US keyboards. */ #define DIK_CIRCUMFLEX DIK_PREVTRACK /* Japanese keyboard */ #endif /* DIJ_RINGZERO */ Thats an excerpt from dinput.h. As you can see, the characters a user would type
have very different codes from the ones in ASCII, as the scan codes are scan co des which mean they go in order as seen on a keyboard.