Key Codes
#define VK_LBUTTON 1 //Start Of Heading
#define VK_RBUTTON 2 //Start Of Text
#define VK_CANCEL 3 //End Of Text
#define VK_MBUTTON 4 //End Of Transmission
#define VK_XBUTTON1 5 //Enquiry
#define VK_XBUTTON2 6 //Acknowledge
#define VK_BACK 8 //Backspace
#define VK_TAB 9 //Horizontal Tab
#define VK_CLEAR 12 //NP Form Feed, New Page
#define VK_RETURN 13 //Carriage Return
#define VK_SHIFT 16 //Data Link Escape
#define VK_CONTROL 17 //Device Control 1
#define VK_MENU 18 //Device Control 2
#define VK_PAUSE 19 //Device Control 3
#define VK_CAPITAL 20 //Device Control 4
#define VK_KANA 21 //Negative Acknowledge
#define VK_JUNJA 23 //End Of Transmission Block
#define VK_FINAL 24 //Cancel
#define VK_KANJI 25 //End Of Medium
#define VK_ESCAPE 27 //Escape
#define VK_CONVERT 28 //File Separator
#define VK_NONCONVERT 29 //Group Separator
#define VK_ACCEPT 30 //Record Separator
#define VK_MODECHANGE 31 //Unit Separator
#define VK_SPACE 32 //Space
#define VK_PRIOR 33 //Exclamation Mark
#define VK_NEXT 34 //Double Quotes
#define VK_END 35 //Number Sign
#define VK_HOME 36 //Dollar Sign
#define VK_LEFT 37 //Percent Sign
#define VK_UP 38 //Ampersand
#define VK_RIGHT 39 //Single Quote
#define VK_DOWN 40 //Opening Parenthesis
#define VK_SELECT 41 //Closing Parenthesis
#define VK_PRINT 42 //Asterisk
#define VK_EXECUTE 43 //Plus Sign
#define VK_SNAPSHOT 44 //Comma
#define VK_INSERT 45 //Minus Sign / Hyphen
#define VK_DELETE 46 //Period
#define VK_HELP 47 //Slash
#define VK_0 48 //Number 0
#define VK_1 49 //Number 1
#define VK_2 50 //Number 2
#define VK_3 51 //Number 3
#define VK_4 52 //Number 4
#define VK_5 53 //Number 5
#define VK_6 54 //Number 6
#define VK_7 55 //Number 7
#define VK_8 56 //Number 8
#define VK_9 57 //Number 9
#define VK_A 65 //Capital Letter A
#define VK_B 66 //Capital Letter B
#define VK_C 67 //Capital Letter C
#define VK_D 68 //Capital Letter D
#define VK_E 69 //Capital Letter E
#define VK_F 70 //Capital Letter F
#define VK_G 71 //Capital Letter G
#define VK_H 72 //Capital Letter H
#define VK_I 73 //Capital Letter I
#define VK_J 74 //Capital Letter J
#define VK_K 75 //Capital Letter K
#define VK_L 76 //Capital Letter L
#define VK_M 77 //Capital Letter M
#define VK_N 78 //Capital Letter N
#define VK_O 79 //Capital Letter O
#define VK_P 80 //Capital Letter P
#define VK_Q 81 //Capital Letter Q
#define VK_R 82 //Capital Letter R
#define VK_S 83 //Capital Letter S
#define VK_T 84 //Capital Letter T
#define VK_U 85 //Capital Letter U
#define VK_V 86 //Capital Letter V
#define VK_W 87 //Capital Letter W
#define VK_X 88 //Capital Letter X
#define VK_Y 89 //Capital Letter Y
#define VK_Z 90 //Capital Letter Z
#define VK_LWIN 91 //Opening Bracket
#define VK_RWIN 92 //Backslash
#define VK_APPS 93 //Closing Bracket
#define VK_SLEEP 95 //Underscore
#define VK_NUMPAD0 96 //Accent
#define VK_NUMPAD1 97 //Small Letter a
#define VK_NUMPAD2 98 //Small Letter b
#define VK_NUMPAD3 99 //Small Letter c
#define VK_NUMPAD4 100 //Small Letter d
#define VK_NUMPAD5 101 //Small Letter e
#define VK_NUMPAD6 102 //Small Letter f
#define VK_NUMPAD7 103 //Small Letter g
#define VK_NUMPAD8 104 //Small Letter h
#define VK_NUMPAD9 105 //Small Letter i
#define VK_MULTIPLY 106 //Small Letter j
#define VK_ADD 107 //Small Letter k
#define VK_SEPARATOR 108 //Small Letter l
#define VK_SUBTRACT 109 //Small Letter m
#define VK_DECIMAL 110 //Small Letter n
#define VK_DIVIDE 111 //Small Letter o
#define VK_F1 112 //Small Letter p
#define VK_F2 113 //Small Letter q
#define VK_F3 114 //Small Letter r
#define VK_F4 115 //Small Letter s
#define VK_F5 116 //Small Letter t
#define VK_F6 117 //Small Letter u
#define VK_F7 118 //Small Letter v
#define VK_F8 119 //Small Letter w
#define VK_F9 120 //Small Letter x
#define VK_F10 121 //Small Letter y
#define VK_F11 122 //Small Letter z
#define VK_F12 123 //Opening Brace
#define VK_F13 124 //Pipe / Vertical Bar
#define VK_F14 125 //Closing Brace
#define VK_F15 126 //Tilde / Equivalency
#define VK_F16 127 //
#define VK_F17 128 //Euro
#define VK_F18 129 //
#define VK_F19 130 //
#define VK_F20 131 //
#define VK_F21 132 //
#define VK_F22 133 //
#define VK_F23 134 //Cross
#define VK_F24 135 //Double Cross
#define VK_NUMLOCK 144 //
#define VK_SCROLL 145 //
#define VK_LSHIFT 160 //Non-breaking Space
#define VK_RSHIFT 161 //
#define VK_LCONTROL 162 //
#define VK_RCONTROL 163 //
#define VK_LMENU 164 //Currency Sign
#define VK_RMENU 165 //
#define VK_BROWSER_BACK 166 //Broken Vertical Bar
#define VK_BROWSER_FORWARD 167 //Section Sign
#define VK_BROWSER_REFRESH 168 //Spacing Diaeresis
#define VK_BROWSER_STOP 169 //Copyright Sign
#define VK_BROWSER_SEARCH 170 //
#define VK_BROWSER_FAVORITES 171 //Double Angle Quotes
#define VK_BROWSER_HOME 172 //Not Sign
#define VK_VOLUME_MUTE 173 //Soft Hyphen
#define VK_VOLUME_DOWN 174 //Trade Mark Sign
#define VK_VOLUME_UP 175 //
#define VK_MEDIA_NEXT_TRACK 176 //
#define VK_MEDIA_PREV_TRACK 177 //
#define VK_MEDIA_STOP 178 //
#define VK_MEDIA_PLAY_PAUSE 179 //
#define VK_LAUNCH_MAIL 180 //Spacing Acute / Acute Accent
#define VK_LAUNCH_MEDIA_SELECT 181 //Micro Sign
#define VK_LAUNCH_APP1 182 //Pilcrow Sign / Paragraph
#define VK_LAUNCH_APP2 183 //Middle Dot
#define VK_OEM_1 186 //
#define VK_OEM_PLUS 187 //
#define VK_OEM_COMMA 188 //
#define VK_OEM_MINUS 189 //
#define VK_OEM_PERIOD 190 //
#define VK_OEM_2 191 //
#define VK_OEM_3 192 //
#define VK_OEM_4 219 //
#define VK_OEM_5 220 //
#define VK_OEM_6 221 //
#define VK_OEM_7 222 //
#define VK_OEM_8 223 //
#define VK_OEM_102 226 //
#define VK_PROCESSKEY 229 //
#define VK_PACKET 231 //
#define VK_ATTN 246 //
#define VK_CRSEL 247 //Divide
#define VK_EXSEL 248 //
#define VK_EREOF 249 //
#define VK_PLAY 250 //
#define VK_ZOOM 251 //
#define VK_NONAME 252 //
#define VK_PA1 253 //
#define VK_OEM_CLEAR 254 //