04-17-2018, 10:21 PM
I created arrays from the QM help page 'Other info' >> 'Virtual-key codes'
Read the below green comment in the QM code.
I thought it might be handy to have it available in arrays.
Function keylist_toarrays
Read the below green comment in the QM code.
I thought it might be handy to have it available in arrays.
Function keylist_toarrays
;;********************************************************
;;*
;;*
;;* From the QM help page: 'Other info' >> 'Virtual-key codes'
;;* (..\App\QuickMacros\qm2help.chm::/Tables/IDP_VIRTUALKEYS.html)
;;* It contains a list of [1]VK codes, [2]values, [3]QM key codes and [4]descriptions.
;;*
;;* Below you will see the above mentioned [1] to [4] represented in arrays:
;;* [1] ARRAY(str) arr_keylist_const
;;* [2] ARRAY(str) arr_keylist_value
;;* [3] ARRAY(str) arr_keylist_qm
;;* [4] ARRAY(str) arr_keylist_descript
;;*
;;* Within the below string "keylist", empty values are represented with double dots.
;;* The 'dash' also seemed to represent empty (none-spefied?) values.
;;* In other words, the double dots AND dashes are empty values
;;*
;;* Important note:
;;* Below in string "keylist" there is a line:
;;* VK_OEM_5|0xDC|\ or @pipe@|Used ..................
;;* The @pipe@ represents: | (actual pipe symbol). I had to do this because I used the pipe to delimit the lines.
;;*
;;* You could for example, put this somehwere in your init2 and make the 4 arrays system global => +
;;* Then you could have key-code information always available for your projects.
;;*
;;* I also took care of the ranges, in other words: ranges are converted to individual lines.
;;*
;;*
;;******************************************************
;
;
str keylist=
;VK_LBUTTON|0x1|..|Left mouse button
;VK_RBUTTON|0x2|..|Right mouse button
;VK_CANCEL|0x3|..|Control-break (Ctrl+Pause)
;VK_MBUTTON|0x4|..|Middle mouse button
;VK_XBUTTON1|0x5|..|X1 mouse button
;VK_XBUTTON2|0x6|..|X2 mouse button
;-|0x7|..|Undefined
;VK_BACK|0x8|B|BACKSPACE key
;VK_TAB|0x9|T|TAB key
;-|0xA|..|Reserved
;-|0xB|..|Reserved
;VK_CLEAR|0xC|..|CLEAR key (Shift+Num5)
;VK_RETURN|0xD|Y|ENTER key
;-|0xE|..|Undefined
;-|0xF|..|Undefined
;VK_SHIFT|0x10|S|SHIFT key
;VK_CONTROL|0x11|C|CTRL key
;VK_MENU|0x12|A|ALT key
;VK_PAUSE|0x13|G|PAUSE key
;VK_CAPITAL|0x14|K|CAPS LOCK key
;VK_KANA|0x15|..|IME Kana mode
;VK_HANGUEL|0x15|..|IME Hanguel mode
;VK_HANGUL|0x15|..|IME Hangul mode
;-|0x16|..|Undefined
;VK_JUNJA|0x17|..|IME Junja mode
;VK_FINAL|0x18|..|IME final mode
;VK_HANJA|0x19|..|IME Hanja mode
;VK_KANJI|0x19|..|IME Kanji mode
;-|0x1A|..|Undefined
;VK_ESCAPE|0x1B|Z|ESC key
;VK_CONVERT|0x1C|..|IME convert
;VK_NONCONVERT|0x1D|..|IME nonconvert
;VK_ACCEPT|0x1E|..|IME accept
;VK_MODECHANGE|0x1F|..|IME mode change request
;VK_SPACE|0x20|V|SPACEBAR
;VK_PRIOR|0x21|P|PAGE UP key
;VK_NEXT|0x22|Q|PAGE DOWN key
;VK_END|0x23|E|END key
;VK_HOME|0x24|H|HOME key
;VK_LEFT|0x25|L|LEFT ARROW key
;VK_UP|0x26|U|UP ARROW key
;VK_RIGHT|0x27|R|RIGHT ARROW key
;VK_DOWN|0x28|D|DOWN ARROW key
;VK_SELECT|0x29|..|SELECT key
;VK_PRINT|0x2A|..|PRINT key
;VK_EXECUTE|0x2B|..|EXECUTE key
;VK_SNAPSHOT|0x2C|..|PRINT SCREEN key
;VK_INSERT|0x2D|I|INS key
;VK_DELETE|0x2E|X|DEL key
;VK_HELP|0x2F|..|HELP key
;..|0x30|0|0 key
;..|0x31|1|1 key
;..|0x32|2|2 key
;..|0x33|3|3 key
;..|0x34|4|4 key
;..|0x35|5|5 key
;..|0x36|6|6 key
;..|0x37|7|7 key
;..|0x38|8|8 key
;..|0x39|9|9 key
;-|0x3A|..|Undefined
;-|0x3B|..|Undefined
;-|0x3C|..|Undefined
;-|0x3D|..|Undefined
;-|0x3E|..|Undefined
;-|0x3F|..|Undefined
;-|0x40|..|Undefined
;..|0x41|a|A key
;..|0x42|b|B key
;..|0x43|c|C key
;..|0x44|d|D key
;..|0x45|e|E key
;..|0x46|f|F key
;..|0x47|g|G key
;..|0x48|h|H key
;..|0x49|i|I key
;..|0x4A|j|J key
;..|0x4B|k|K key
;..|0x4C|l|L key
;..|0x4D|m|M key
;..|0x4E|n|N key
;..|0x4F|o|O key
;..|0x50|p|P key
;..|0x51|q|Q key
;..|0x52|r|R key
;..|0x53|s|S key
;..|0x54|t|T key
;..|0x55|u|U key
;..|0x56|v|V key
;..|0x57|w|W key
;..|0x58|x|X key
;..|0x59|y|Y key
;..|0x5A|z|Z key
;VK_LWIN|0x5B|W|Left Windows key
;VK_RWIN|0x5C|..|Right Windows key
;VK_APPS|0x5D|M|Applications key
;-|0x5E|..|Reserved
;VK_SLEEP|0x5F|..|Computer Sleep key
;VK_NUMPAD0|0x60|N0|Numeric keypad 0 key
;VK_NUMPAD1|0x61|N1|Numeric keypad 1 key
;VK_NUMPAD2|0x62|N2|Numeric keypad 2 key
;VK_NUMPAD3|0x63|N3|Numeric keypad 3 key
;VK_NUMPAD4|0x64|N4|Numeric keypad 4 key
;VK_NUMPAD5|0x65|N5|Numeric keypad 5 key
;VK_NUMPAD6|0x66|N6|Numeric keypad 6 key
;VK_NUMPAD7|0x67|N7|Numeric keypad 7 key
;VK_NUMPAD8|0x68|N8|Numeric keypad 8 key
;VK_NUMPAD9|0x69|N9|Numeric keypad 9 key
;VK_MULTIPLY|0x6A|N*|Multiply key
;VK_ADD|0x6B|N+|Add key
;VK_SEPARATOR|0x6C|..|Separator key
;VK_SUBTRACT|0x6D|N-|Subtract key
;VK_DECIMAL|0x6E|N.|Decimal key
;VK_DIVIDE|0x6F|N/|Divide key
;VK_F1|0x70|F1|F1 key
;VK_F2|0x71|F2|F2 key
;VK_F3|0x72|F3|F3 key
;VK_F4|0x73|F4|F4 key
;VK_F5|0x74|F5|F5 key
;VK_F6|0x75|F6|F6 key
;VK_F7|0x76|F7|F7 key
;VK_F8|0x77|F8|F8 key
;VK_F9|0x78|F9|F9 key
;VK_F10|0x79|F10|F10 key
;VK_F11|0x7A|F11|F11 key
;VK_F12|0x7B|F12|F12 key
;VK_F13|0x7C|F13|F13 key
;VK_F14|0x7D|F14|F14 key
;VK_F15|0x7E|F15|F15 key
;VK_F16|0x7F|F16|F16 key
;VK_F17|0x80|F17|F17 key
;VK_F18|0x81|F18|F18 key
;VK_F19|0x82|F19|F19 key
;VK_F20|0x83|F20|F20 key
;VK_F21|0x84|F21|F21 key
;VK_F22|0x85|F22|F22 key
;VK_F23|0x86|F23|F23 key
;VK_F24|0x87|F24|F24 key
;-|0x88|..|Unassigned
;-|0x89|..|Unassigned
;-|0x8A|..|Unassigned
;-|0x8B|..|Unassigned
;-|0x8C|..|Unassigned
;-|0x8D|..|Unassigned
;-|0x8E|..|Unassigned
;-|0x8F|..|Unassigned
;VK_NUMLOCK|0x90|O|NUM LOCK key
;VK_SCROLL|0x91|J|SCROLL LOCK key
;..|0x92|..|OEM specific
;..|0x93|..|OEM specific
;..|0x94|..|OEM specific
;..|0x95|..|OEM specific
;..|0x96|..|OEM specific
;-|0x97|..|Unassigned
;-|0x98|..|Unassigned
;-|0x99|..|Unassigned
;-|0x9A|..|Unassigned
;-|0x9B|..|Unassigned
;-|0x9C|..|Unassigned
;-|0x9D|..|Unassigned
;-|0x9E|..|Unassigned
;-|0x9F|..|Unassigned
;VK_LSHIFT|0xA0|..|Left SHIFT key
;VK_RSHIFT|0xA1|..|Right SHIFT key
;VK_LCONTROL|0xA2|..|Left CONTROL key
;VK_RCONTROL|0xA3|..|Right CONTROL key
;VK_LMENU|0xA4|..|Left MENU key
;VK_RMENU|0xA5|..|Right MENU key
;VK_BROWSER_BACK|0xA6|..|Browser Back key
;VK_BROWSER_FORWARD|0xA7|..|Browser Forward key
;VK_BROWSER_REFRESH|0xA8|..|Browser Refresh key
;VK_BROWSER_STOP|0xA9|..|Browser Stop key
;VK_BROWSER_SEARCH|0xAA|..|Browser Search key
;VK_BROWSER_FAVORITES|0xAB|..|Browser Favorites key
;VK_BROWSER_HOME|0xAC|..|Browser Start and Home key
;VK_VOLUME_MUTE|0xAD|..|Volume Mute key
;VK_VOLUME_DOWN|0xAE|..|Volume Down key
;VK_VOLUME_UP|0xAF|..|Volume Up key
;VK_MEDIA_NEXT_TRACK|0xB0|..|Next Track key
;VK_MEDIA_PREV_TRACK|0xB1|..|Previous Track key
;VK_MEDIA_STOP|0xB2|..|Stop Media key
;VK_MEDIA_PLAY_PAUSE|0xB3|..|Play/Pause Media key
;VK_LAUNCH_MAIL|0xB4|..|Start Mail key
;VK_LAUNCH_MEDIA_SELECT|0xB5|..|Select Media key
;VK_LAUNCH_APP1|0xB6|..|Start Application 1 key
;VK_LAUNCH_APP2|0xB7|..|Start Application 2 key
;-|0xB8|..|Reserved
;-|0xB9|..|Reserved
;VK_OEM_1|0xBA|:|Used for miscellaneous characters; it can vary by keyboard.[]For the US standard keyboard, the ';:' key
;VK_OEM_1|0xBA|:|Used for miscellaneous characters; it can vary by keyboard.[]For the US standard keyboard, the ';:' key
;VK_OEM_PLUS|0xBB|+ or =|For any country/region, the '+' key
;VK_OEM_COMMA|0xBC|, or <|For any country/region, the ',' key
;VK_OEM_MINUS|0xBD|- or _|For any country/region, the '-' key
;VK_OEM_PERIOD|0xBE|. or >|For any country/region, the '.' key
;VK_OEM_2|0xBF|/ or ?|Used for miscellaneous characters; it can vary by keyboard.[]For the US standard keyboard, the '/?' key
;VK_OEM_2|0xBF|/ or ?|Used for miscellaneous characters; it can vary by keyboard.[]For the US standard keyboard, the '/?' key
;VK_OEM_3|0xC0|` or ~|Used for miscellaneous characters; it can vary by keyboard.[]For the US standard keyboard, the '`~' key
;-|0xC1|..|Reserved
;-|0xC2|..|Reserved
;-|0xC3|..|Reserved
;-|0xC4|..|Reserved
;-|0xC5|..|Reserved
;-|0xC6|..|Reserved
;-|0xC7|..|Reserved
;-|0xC8|..|Reserved
;-|0xC9|..|Reserved
;-|0xCA|..|Reserved
;-|0xCB|..|Reserved
;-|0xCC|..|Reserved
;-|0xCD|..|Reserved
;-|0xCE|..|Reserved
;-|0xCF|..|Reserved
;-|0xD1|..|Reserved
;-|0xD2|..|Reserved
;-|0xD3|..|Reserved
;-|0xD4|..|Reserved
;-|0xD5|..|Reserved
;-|0xD6|..|Reserved
;-|0xD7|..|Reserved
;-|0xD8|..|Unassigned
;-|0xD9|..|Unassigned
;-|0xDA|..|Unassigned
;VK_OEM_4|0xDB|[|Used for miscellaneous characters; it can vary by keyboard.[]For the US standard keyboard, the '[{' key
;VK_OEM_5|0xDC|\ or @pipe@|Used for miscellaneous characters; it can vary by keyboard.[]For the US standard keyboard, the '\|' key
;VK_OEM_6|0xDD|]|Used for miscellaneous characters; it can vary by keyboard.[]For the US standard keyboard, the ']}' key
;VK_OEM_7|0xDE|'|Used for miscellaneous characters; it can vary by keyboard.[]For the US standard keyboard, the 'single-quote/double-quote' key
;VK_OEM_8|0xDF|..|Used for miscellaneous characters; it can vary by keyboard.
;-|0xE0|..|Reserved
;..|0xE1|..|OEM specific
;VK_OEM_102|0xE2|..|Either the angle bracket key or the backslash key on the RT 102-key keyboard
;..|0xE3|..|OEM specific
;..|0xE4|..|OEM specific
;VK_PROCESSKEY|0xE5|..|IME PROCESS key
;..|0xE6|..|OEM specific
;VK_PACKET|0xE7|..|Used to pass Unicode characters as if they were keystrokes.
;- |0xE8|..|Unassigned
;..|0xE9|..|OEM specific
;..|0xEA|..|OEM specific
;..|0xEB|..|OEM specific
;..|0xEC|..|OEM specific
;..|0xED|..|OEM specific
;..|0xEE|..|OEM specific
;..|0xEF|..|OEM specific
;..|0xF0|..|OEM specific
;..|0xF1|..|OEM specific
;..|0xF2|..|OEM specific
;..|0xF3|..|OEM specific
;..|0xF4|..|OEM specific
;..|0xF5|..|OEM specific
;VK_ATTN|0xF6|..|Attn key
;VK_CRSEL|0xF7|..|CrSel key
;VK_EXSEL|0xF8|..|ExSel key
;VK_EREOF|0xF9|..|Erase EOF key
;VK_PLAY|0xFA|..|Play key
;VK_ZOOM|0xFB|..|Zoom key
;VK_NONAME|0xFC|..|Reserved for future use
;VK_PA1|0xFD|..|PA1 key
;VK_OEM_CLEAR|0xFE|..|Clear key
ARRAY(str) arr_keylist_const
ARRAY(str) arr_keylist_value
ARRAY(str) arr_keylist_qm
ARRAY(str) arr_keylist_descript
foreach _s keylist
,ARRAY(str) arr_tok
,tok _s arr_tok -1 "|"
,arr_keylist_const[]=arr_tok[0]
,arr_keylist_value[]=arr_tok[1]
,arr_keylist_qm[]=arr_tok[2]
,arr_keylist_descript[]=arr_tok[3]
out arr_keylist_const.len
out arr_keylist_value.len
out arr_keylist_qm.len
out arr_keylist_descript.len