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 |
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 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 |