NOTICE:
Rawkey and Predef Macros allow a more fine grained approach to creating macro definitions. Although Rawkey macros will be supported for a long time to come, they are a pain to program, so wherever possible, use the new "predef" macros instead. They automatically deal with keyup, keydown and extended key events for you.

Predef Macros

predef macros should look like this:

macro = predef:<predef-name>, [optional KEYDOWN or KEYUP event]

e.g.

macro = predef:RCONTROL, KEYDOWN
macro = predef:RCONTROL, KEYUP

A KEYDOWN event sends a message to the PC that the key has been pressed. It will remain in that pressed state until you send a KEYUP event for the same key. This allows you hold several keys down at the same time. If KEYDOWN or KEYUP is *NOT* specified, the predef routines will automatically create a KEYDOWN / KEYUP pair for you.

With predef macros, there should be no need to worry about if a key is marked as EXTENDEDKEY or not, as the predef routines will automatically define this for each key.

=====================================

Rawkey Macros

rawkey macros should look like this:

macro = rawkey:<rawkey-name>, [EXTENDEDKEY] | [KEYUP]

Extended Keys are marked in the "Extended key?" column below.

e.g.

macro = rawkey:RCONTROL, EXTENDEDKEY
macro = rawkey:RCONTROL, EXTENDEDKEY | KEYUP

There is no KEYDOWN event with rawkey macros. Just sending the rawkey code for the key defines it as a KEYDOWN event. It will remain in that pressed state until you send a KEYUP event for the same key. This allows you hold several keys down at the same time.

rawkeys are a pain to use and configure (use the predef macros above if you can), but if you REALLY need to use rawkeys, make sure you know exactly what you are doing.

Rawkey Name Hex Code Extended key? PREDEF Name Description Supported?
VK_LBUTTON 0x01 NO LBUTTON Left mouse button
VK_RBUTTON 0x02 NO RBUTTON Right mouse button
VK_CANCEL 0x03 NO CANCEL Control-break processing
VK_MBUTTON 0x04 NO MMOUSE Middle mouse button (three-button mouse)
VK_XBUTTON1 0x05 NO XBUTTON1 Windows 2000/XP: X1 mouse button
VK_XBUTTON2 0x06 NO XBUTTON2 Windows 2000/XP: X2 mouse button
0x07 NO Undefined By Hex Definition Only
VK_BACK 0x08 NO BACK BACKSPACE key
VK_TAB 0x09 NO TAB TAB key
0x0A NO Reserved By Hex Definition Only
0x0B NO Reserved By Hex Definition Only
VK_CLEAR 0x0C NO CLEAR CLEAR key
VK_RETURN 0x0D NO RETURN ENTER key
VK_RETURN 0x0D YES NUMPAD_RETURN NUMPAD ENTER key  
0x0E NO Undefined By Hex Definition Only
0x0F NO Undefined By Hex Definition Only
VK_SHIFT 0x10 NO SHIFT SHIFT key
VK_CONTROL 0x11 NO CONTROL CTRL key
VK_MENU 0x12 NO MENU ALT key
VK_ALT 0x12 NO ALT Alias for VK_MENU (above)  
VK_PAUSE 0x13 NO PAUSE PAUSE key
VK_CAPITAL 0x14 NO CAPITAL
or
CAPSLOCK
CAPS LOCK key
VK_KANA 0x15 NO KANA Input Method Editor (IME) Kana mode
VK_HANGUEL 0x15 NO HANGUEL IME Hanguel mode (maintained for compatibility; use VK_HANGUL)
VK_HANGUL 0x15 NO HANGUL IME Hangul mode
0x16 NO Undefined By Hex Definition Only
VK_JUNJA 0x17 NO JUNJU IME Junja mode
VK_FINAL 0x18 NO FINAL IME final mode
VK_HANJA 0x19 NO HANJA IME Hanja mode
VK_KANJI 0x19 NO KANJI IME Kanji mode
0x1A NO Undefined By Hex Definition Only
VK_ESCAPE 0x1B NO ESCAPE ESC key
VK_CONVERT 0x1C NO CONVERT IME convert
VK_NONCONVERT 0x1D NO NONCONVERT IME nonconvert
VK_ACCEPT 0x1E NO ACCEPT IME accept
VK_MODECHANGE 0x1F NO MODECHANGE IME mode change request
VK_SPACE 0x20 NO SPACE SPACEBAR
VK_PRIOR 0x21 YES

PRIOR
or
PAGEUP

PAGE UP key
VK_NEXT 0x22 YES NEXT
or
PAGEDOWN
PAGE DOWN key
VK_END 0x23 YES END END key
VK_HOME 0x24 YES HOME HOME key
VK_LEFT 0x25 YES LEFT LEFT ARROW key
VK_UP 0x26 YES UP UP ARROW key
VK_RIGHT 0x27 YES RIGHT RIGHT ARROW key
VK_DOWN 0x28 YES DOWN DOWN ARROW key
VK_SELECT 0x29 NO SELECT SELECT key
VK_PRINT 0x2A NO PRINT PRINT key
VK_EXECUTE 0x2B NO EXECUTE EXECUTE key
VK_SNAPSHOT 0x2C NO SNAPSHOT
or
PRINTSCREEN
PRINT SCREEN key
VK_INSERT 0x2D YES INSERT INS key
VK_DELETE 0x2E YES DELETE DEL key
VK_HELP 0x2F NO HELP HELP key
VK_0 0x30 NO 0 0 key
VK_1 0x31 NO 1 1 key
VK_2 0x32 NO 2 2 key
VK_3 0x33 NO 3 3 key
VK_4 0x34 NO 4 4 key
VK_5 0x35 NO 5 5 key
VK_6 0x36 NO 6 6 key
VK_7 0x37 NO 7 7 key
VK_8 0x38 NO 8 8 key
VK_9 0x39 NO 9 9 key
0x3A NO Undefined By Hex Definition Only
0x3B NO Undefined By Hex Definition Only
0x3C NO Undefined By Hex Definition Only
0x3D NO Undefined By Hex Definition Only
0x3E NO Undefined By Hex Definition Only
0x3F NO Undefined By Hex Definition Only
0x40 NO Undefined By Hex Definition Only
VK_A 0x41 NO A A
VK_B 0x42 NO B B
VK_C 0x43 NO C C
VK_D 0x44 NO D D
VK_E 0x45 NO E E
VK_F 0x46 NO F F
VK_G 0x47 NO G G
VK_H 0x48 NO H H
VK_I 0x49 NO I I
VK_J 0x4A NO J J
VK_K 0x4B NO K K
VK_L 0x4C NO L L
VK_M 0x4D NO M M
VK_N 0x4E NO N N
VK_O 0x4F NO O O
VK_P 0x50 NO P P
VK_Q 0x51 NO Q Q
VK_R 0x52 NO R R
VK_S 0x53 NO S S
VK_T 0x54 NO T T
VK_U 0x55 NO U U
VK_V 0x56 NO V V
VK_W 0x57 NO W W
VK_X 0x58 NO X X
VK_Y 0x59 NO Y Y
VK_Z 0x5A NO Z Z
VK_LWIN 0x5B YES (I think!) LWIN Left Windows key (Microsoft Natural keyboard)
VK_RWIN 0x5C YES RWIN Right Windows key (Natural keyboard)
VK_APPS 0x5D YES APPS Applications key (Natural keyboard)
0x5E NO Reserved By Hex Definition Only
VK_SLEEP 0x5F NO SLEEP Computer Sleep key
VK_NUMPAD0 0x60 NO NUMPAD0 Numeric keypad 0 key
VK_NUMPAD1 0x61 NO NUMPAD1 Numeric keypad 1 key
VK_NUMPAD2 0x62 NO NUMPAD2 Numeric keypad 2 key
VK_NUMPAD3 0x63 NO NUMPAD3 Numeric keypad 3 key
VK_NUMPAD4 0x64 NO NUMPAD4 Numeric keypad 4 key
VK_NUMPAD5 0x65 NO NUMPAD5 Numeric keypad 5 key
VK_NUMPAD6 0x66 NO NUMPAD6 Numeric keypad 6 key
VK_NUMPAD7 0x67 NO NUMPAD7 Numeric keypad 7 key
VK_NUMPAD8 0x68 NO NUMPAD8 Numeric keypad 8 key
VK_NUMPAD9 0x69 NO NUMPAD9 Numeric keypad 9 key
VK_MULTIPLY 0x6A NO MULTIPLY Multiply key
VK_ADD 0x6B NO ADD Add key
VK_SEPARATOR 0x6C NO SEPERATOR Separator key
VK_SUBTRACT 0x6D NO SUBTRACT Subtract key
VK_DECIMAL 0x6E NO DECIMAL Decimal key ("." on Numpad)
VK_DIVIDE 0x6F YES DIVIDE Divide key (on Numpad)
VK_F1 0x70 NO F1 F1 key
VK_F2 0x71 NO F2 F2 key
VK_F3 0x72 NO F3 F3 key
VK_F4 0x73 NO F4 F4 key
VK_F5 0x74 NO F5 F5 key
VK_F6 0x75 NO F6 F6 key
VK_F7 0x76 NO F7 F7 key
VK_F8 0x77 NO F8 F8 key
VK_F9 0x78 NO F9 F9 key
VK_F10 0x79 NO F10 F10 key
VK_F11 0x7A NO F11 F11 key
VK_F12 0x7B NO F12 F12 key
VK_F13 0x7C NO F13 F13 key
VK_F14 0x7D NO F14 F14 key
VK_F15 0x7E NO F15 F15 key
VK_F16 0x7F NO F16 F16 key
VK_F17 0x80 NO F17 F17 key
VK_F18 0x81 NO F18 F18 key
VK_F19 0x82 NO F19 F19 key
VK_F20 0x83 NO F20 F20 key
VK_F21 0x84 NO F21 F21 key
VK_F22 0x85 NO F22 F22 key
VK_F23 0x86 NO F23 F23 key
VK_F24 0x87 NO F24 F24 key
0x88 NO Unassigned By Hex Definition Only
0x89 NO Unassigned By Hex Definition Only
0x8A NO Unassigned By Hex Definition Only
0x8B NO Unassigned By Hex Definition Only
0x8C NO Unassigned By Hex Definition Only
0x8D NO Unassigned By Hex Definition Only
0x8E NO Unassigned By Hex Definition Only
0x8F NO Unassigned By Hex Definition Only
VK_NUMLOCK 0x90 YES NUMLOCK NUM LOCK key
VK_SCROLL 0x91 NO SCROLL
or
SCROLLLOCK
SCROLL LOCK key
0x92 NO OEM specific By Hex Definition Only
0x93 NO OEM specific By Hex Definition Only
0x94 NO OEM specific By Hex Definition Only
0x95 NO OEM specific By Hex Definition Only
0x96 NO OEM specific By Hex Definition Only
0x97 NO Unassigned By Hex Definition Only
0x98 NO Unassigned By Hex Definition Only
0x99 NO Unassigned By Hex Definition Only
0x9A NO Unassigned By Hex Definition Only
0x9B NO Unassigned By Hex Definition Only
0x9C NO Unassigned By Hex Definition Only
0x9D NO Unassigned By Hex Definition Only
0x9E NO Unassigned By Hex Definition Only
0x9F NO Unassigned By Hex Definition Only
VK_LSHIFT 0xA0 NO LSHIFT Left SHIFT key
VK_RSHIFT 0xA1 NO RSHIFT Right SHIFT key
VK_LCONTROL 0xA2 NO LCONTROL Left CONTROL key
VK_RCONTROL 0xA3 YES RCONTROL Right CONTROL key
VK_LMENU 0xA4 NO LMENU Left MENU key (aka Left ALT key)
VK_LALT 0xA4 NO LALT Alias for Left MENU key (above)  
VK_RMENU 0xA5 YES RMENU Right MENU key (aka Right ALT key)
VK_RALT 0xA5 YES RALT Alias for Right MENU key (above)  
VK_BROWSER_BACK 0xA6 NO BROWSER_BACK Windows 2000/XP: Browser Back key
VK_BROWSER_FORWARD 0xA7 NO BROWSER_FORWARD Windows 2000/XP: Browser Forward key
VK_BROWSER_REFRESH 0xA8 NO BROWSER_REFRESH Windows 2000/XP: Browser Refresh key
VK_BROWSER_STOP 0xA9 NO BROWSER_STOP Windows 2000/XP: Browser Stop key
VK_BROWSER_SEARCH 0xAA NO BROWSER_SEARCH Windows 2000/XP: Browser Search key
VK_BROWSER_FAVORITES 0xAB NO BROWSER_FAVORITES Windows 2000/XP: Browser Favorites key
VK_BROWSER_HOME 0xAC NO BROWSER_HOME Windows 2000/XP: Browser Start and Home key
VK_VOLUME_MUTE 0xAD NO VOLUME_MUTE Windows 2000/XP: Volume Mute key
VK_VOLUME_DOWN 0xAE NO VOLUME_DOWN Windows 2000/XP: Volume Down key
VK_VOLUME_UP 0xAF NO VOLUME_UP Windows 2000/XP: Volume Up key
VK_MEDIA_NEXT_TRACK 0xB0 NO MEDIA_NEXT_TRACK Windows 2000/XP: Next Track key
VK_MEDIA_PREV_TRACK 0xB1 NO MEDIA_PREV_TRACK Windows 2000/XP: Previous Track key
VK_MEDIA_STOP 0xB2 NO MEDIA_STOP Windows 2000/XP: Stop Media key
VK_MEDIA_PLAY_PAUSE 0xB3 NO MEDIA_PLAY_PAUSE Windows 2000/XP: Play/Pause Media key
VK_LAUNCH_MAIL 0xB4 NO LAUNCH_MAIL Windows 2000/XP: Start Mail key
VK_LAUNCH_MEDIA_SELECT 0xB5 NO LAUNCH_MEDIA_SELECT Windows 2000/XP: Select Media key
VK_LAUNCH_APP1 0xB6 NO LAUNCH_APP1 Windows 2000/XP: Start Application 1 key
VK_LAUNCH_APP2 0xB7 NO LAUNCH_APP2 Windows 2000/XP: Start Application 2 key
0xB8 NO Reserved By Hex Definition Only
0xB9 NO Reserved By Hex Definition Only
VK_OEM_1 0xBA NO OEM_1 Used for miscellaneous characters; it can vary by keyboard.
Windows 2000/XP: For the US standard keyboard, the ';:' key

VK_OEM_PLUS 0xBB NO OEM_PLUS Windows 2000/XP: For any country/region, the '+' key
VK_OEM_COMMA 0xBC NO OEM_COMMA Windows 2000/XP: For any country/region, the ',' key
VK_OEM_MINUS 0xBD NO OEM_MINUS Windows 2000/XP: For any country/region, the '-' key
VK_OEM_PERIOD 0xBE NO OEM_PERIOD Windows 2000/XP: For any country/region, the '.' key
VK_OEM_2 0xBF NO OEM_2 Used for miscellaneous characters; it can vary by keyboard.
Windows 2000/XP: For the US standard keyboard, the '/?' key
VK_OEM_3 0xC0 NO OEM_3 Used for miscellaneous characters; it can vary by keyboard.
Windows 2000/XP: For the US standard keyboard, the '`~' key
0xC1 NO Reserved By Hex Definition Only
0xC2 NO Reserved By Hex Definition Only
0xC3 NO Reserved By Hex Definition Only
0xC4 NO Reserved By Hex Definition Only
0xC5 NO Reserved By Hex Definition Only
0xC6 NO Reserved By Hex Definition Only
0xC7 NO Reserved By Hex Definition Only
0xC8 NO Reserved By Hex Definition Only
0xC9 NO Reserved By Hex Definition Only
0xCA NO Reserved By Hex Definition Only
0xCB NO Reserved By Hex Definition Only
0xCC NO Reserved By Hex Definition Only
0xCD NO Reserved By Hex Definition Only
0xCE NO Reserved By Hex Definition Only
0xCF NO Reserved By Hex Definition Only
0xD0 NO Reserved By Hex Definition Only
0xD1 NO Reserved By Hex Definition Only
0xD2 NO Reserved By Hex Definition Only
0xD3 NO Reserved By Hex Definition Only
0xD4 NO Reserved By Hex Definition Only
0xD5 NO Reserved By Hex Definition Only
0xD6 NO Reserved By Hex Definition Only
0xD7 NO Reserved By Hex Definition Only
0xD8 NO Unassigned By Hex Definition Only
0xD9 NO Unassigned By Hex Definition Only
0xDA NO Unassigned By Hex Definition Only
VK_OEM_4 0xDB NO OEM_4 Used for miscellaneous characters; it can vary by keyboard.

Windows 2000/XP: For the US standard keyboard, the '[{' key
VK_OEM_5 0xDC NO OEM_5