DECLARE LIBRARY 'function is already used by QB64 so "User32" is not required
CONST NONE
= 0, KEY_CTRL
= 1, KEY_NO_CTRL
= 2 CONST KEY_SHIFT
= 4, KEY_NO_SHIFT
= 8, KEY_ALT
= 16, KEY_NO_ALT
= 32 CONST KEY_ALTGR
= 64, CASECHANGE
= 128, TOGGLE
= 256
Set_US_Keys
k = GetKeyHit(s$)
CASE ELSE: r
= GetKeyState
(Keys
(i
).Index
)
IF Keys
(16).Down
THEN CaseShift
= -1 ELSE CaseShift
= 0
IF Keys
(i
).Down
= 0 THEN 'If the key state is recorded as up checkkeys:
IF (Keys
(i
).Modifiers
AND KEY_SHIFT
) THEN 'we have a shift modifier on the key IF CaseShift
THEN 'and shift is down Keys
(i
).LastHit
= TIMER + Keys
(i
).Repeat
'and record when we hit it for repeat purposes GetKeyHit = Keys(i).KeyCodeReturn: s$ = Keys(i).ASCII
Keys(i).Down = -1 'record it as being down
ELSEIF (Keys
(i
).Modifiers
AND KEY_NO_SHIFT
) THEN 'we have a no shift modifier on the key Keys
(i
).LastHit
= TIMER + Keys
(i
).Repeat
'and record when we hit it for repeat purposes GetKeyHit = Keys(i).KeyCodeReturn: s$ = Keys(i).ASCII
Keys(i).Down = -1 'record it as being down
ELSE 'we have a NONE modifier on the key Keys
(i
).LastHit
= TIMER + Keys
(i
).Repeat
'and record when we hit it for repeat purposes GetKeyHit = Keys(i).KeyCodeReturn: s$ = Keys(i).ASCII
Keys(i).Down = -1 'record it as being down
ELSE 'the keystate has been recorded as being down IF TIMER <= Keys
(i
).LastHit
THEN 'unless the repeat time has passed GetKeyHit = 0 'we don't report the key as being active
ELSE 'if the repeat time has passed... IF (Keys
(i
).Modifiers
AND TOGGLE
) = 0 THEN GOTO checkkeys
'then recheck to see if the key is still down IF Keys
(i
).Down
THEN 'and the keys were reported as being down GetKeyHit = -Keys(i).KeyCodeReturn 'so report the key release
Keys(i).Down = 0 'and record the key as being up now
Keys(i).LastHit = 0 'and we can say it's last hit (in regards to repeating itself) is now done.
Which = Which + 1
Keys(Which).Index = Index
Keys(Which).KeyCodeReturn = KeyCodeReturn
Keys(Which).ASCII = ASCII
Keys(Which).Modifiers = Modifiers
Keys(Which).Repeat = Repeat
Keys(Which).LastHit = 0
Keys(Which).Index = Index
Keys(Which).KeyCodeReturn = KeyCodeReturn
Keys(Which).ASCII = ASCII
Keys(Which).Modifiers = Modifiers
Keys(Which).Repeat = Repeat
SetNextKey 1, 100001, "LMB", NONE, 0.2 'Left Mouse Button
SetNextKey 2, 100002, "RMB", NONE, 0.2 'Right Mouse Button
SetNextKey 3, 900001, "CANCEL", NONE, 0.2 'VK_Cancel
SetNextKey 4, 100003, "MMB", NONE, 0.2 'Middle Mouse Button
SetNextKey 5, 100004, "MB4", NONE, 0.2 'Mouse Button 4
SetNextKey 6, 100005, "MB5", NONE, 0.2 'Mouse Button 5
SetNextKey 7, 900007, "UNDEFINED", NONE, 0 'Undefined
SetNextKey
8, 8, CHR$(8), NONE
, 0.2 'BackSpace SetNextKey
9, 9, CHR$(9), NONE
, 0.2 'Tab SetNextKey 10, 900010, "RESERVED", NONE, 0 'Reserved
SetNextKey 11, 900011, "RESERVED", NONE, 0 'Reserved
SetNextKey
12, 19456, CHR$(0) + CHR$(76), NONE
, 0.2 'Clear SetNextKey
13, 13, CHR$(13), NONE
, 0.2 'Enter SetNextKey 14, 900014, "UNDEFINED", NONE, 0 'Undefined
SetNextKey 15, 900015, "UNDEFINED", NONE, 0 'Undefined
SetNextKey 16, 100016, "SHIFT", TOGGLE, 0 'Shift (Notice I set it to simple toddle and report UP/DOWN results for us)
SetNextKey 17, 100017, "CTRL", TOGGLE, 0 'Ctrl (Same)
SetNextKey 18, 100018, "ALT", TOGGLE, 0 'Alt (Same)
SetNextKey 19, 100019, "PAUSE", NONE, 0 'Pause
SetNextKey 20, 100301, "CAPS", TOGGLE, 0 'Caps Lock
SetNextKey 21, 900021, "VK_HANGUL", NONE, 0 'VK_Hangul
SetNextKey 22, 900022, "UNDEFINED", NONE, 0 'Undefined
SetNextKey 23, 900023, "VK_JUNJA", NONE, 0 'VK_Junja
SetNextKey 24, 900024, "VK_FINAL", NONE, 0 'VK_Final
SetNextKey 25, 900025, "VK_HANJA/VK_KANJI", NONE, 0 'VK_HANGA and VK_Kanji
SetNextKey 26, 900026, "UNDEFINED", NONE, 0 'Undefined
SetNextKey
27, 27, CHR$(27), NONE
, 0.2 'ESC SetNextKey 28, 900028, "VK_CONVERT", NONE, 0 'VK_Convert
SetNextKey 29, 900029, "VK_NONCONVERT", NONE, 0 'VK_NonConvery
SetNextKey 30, 900030, "VK_ACCEPT", NONE, 0 'VK_Accept
SetNextKey 31, 900031, "VK_MODECHANGE", NONE, 0 'VK_ModeChange
SetNextKey 32, 32, " ", NONE, 0.2 'Space
SetNextKey
33, 18688, CHR$(0) + CHR$(73), NONE
, 0.2 'Page Up SetNextKey
34, 20736, CHR$(0) + CHR$(81), NONE
, 0.2 'Page Down SetNextKey
35, 20224, CHR$(0) + CHR$(79), NONE
, 0.2 'END SetNextKey
36, 18176, CHR$(0) + CHR$(71), NONE
, 0.2 'HOME SetNextKey
37, 19200, CHR$(0) + CHR$(75), NONE
, 0.2 'Left Arrow SetNextKey
38, 18432, CHR$(0) + CHR$(72), NONE
, 0.2 'Up Arrow SetNextKey
39, 19712, CHR$(0) + CHR$(77), NONE
, 0.2 'Right Arrow SetNextKey
40, 20480, CHR$(0) + CHR$(80), NONE
, 0.2 'Down Arrow SetNextKey 41, 900041, "VK_SELECT", NONE, 0 'VK_SELECT
SetNextKey 42, 900042, "VK_PRINT", NONE, 0 'VK_PRINT
SetNextKey 43, 900043, "VK_EXECUTE", NONE, 0 'VK_EXECUTE
SetNextKey 44, 900044, "VK_SNAPSHOT", NONE, 0 'VK_SNAPSHOT
SetNextKey
45, 20992, CHR$(0) + CHR$(82), NONE
, 0 'INS SetNextKey
46, 21248, CHR$(0) + CHR$(83), NONE
, 0 'DEL SetNextKey 47, 900047, "VK_HELP", NONE, 0 'VK_HELP
SetNextKey 48, 48, "0", KEY_NO_SHIFT, 0.2 '0
SetNextKey 49, 49, "1", KEY_NO_SHIFT, 0.2 '1
SetNextKey 50, 50, "2", KEY_NO_SHIFT, 0.2 '2
SetNextKey 51, 51, "3", KEY_NO_SHIFT, 0.2 '3
SetNextKey 52, 52, "4", KEY_NO_SHIFT, 0.2 '4
SetNextKey 53, 53, "5", KEY_NO_SHIFT, 0.2 '5
SetNextKey 54, 54, "6", KEY_NO_SHIFT, 0.2 '6
SetNextKey 55, 55, "7", KEY_NO_SHIFT, 0.2 '7
SetNextKey 56, 56, "8", KEY_NO_SHIFT, 0.2 '8
SetNextKey 57, 57, "9", KEY_NO_SHIFT, 0.2 '9
SetNextKey 48, 41, ")", KEY_SHIFT, 0.2 '0
SetNextKey 49, 33, "!", KEY_SHIFT, 0.2 '1
SetNextKey 50, 64, "@", KEY_SHIFT, 0.2 '2
SetNextKey 51, 35, "#", KEY_SHIFT, 0.2 '3
SetNextKey 52, 36, "$", KEY_SHIFT, 0.2 '4
SetNextKey 53, 37, "%", KEY_SHIFT, 0.2 '5
SetNextKey 54, 94, "^", KEY_SHIFT, 0.2 '6
SetNextKey 55, 38, "&", KEY_SHIFT, 0.2 '7
SetNextKey 56, 42, "*", KEY_SHIFT, 0.2 '8
SetNextKey 57, 40, "(", KEY_SHIFT, 0.2 '9
SetNextKey 58, 900058, "UNDEFINED", NONE, 0 'Undefined
SetNextKey 59, 900059, "UNDEFINED", NONE, 0 'Undefined
SetNextKey 60, 900060, "UNDEFINED", NONE, 0 'Undefined
SetNextKey 61, 900061, "UNDEFINED", NONE, 0 'Undefined
SetNextKey 62, 900062, "UNDEFINED", NONE, 0 'Undefined
SetNextKey 63, 900063, "UNDEFINED", NONE, 0 'Undefined
SetNextKey 64, 900064, "UNDEFINED", NONE, 0 'Undefined
SetNextKey 65, 65, "A", CASECHANGE + KEY_SHIFT, 0.2 'A
SetNextKey 66, 66, "B", CASECHANGE + KEY_SHIFT, 0.2 'B
SetNextKey 67, 67, "C", CASECHANGE + KEY_SHIFT, 0.2 'C
SetNextKey 68, 68, "D", CASECHANGE + KEY_SHIFT, 0.2 'D
SetNextKey 69, 69, "E", CASECHANGE + KEY_SHIFT, 0.2 'E
SetNextKey 70, 70, "F", CASECHANGE + KEY_SHIFT, 0.2 'F
SetNextKey 71, 71, "G", CASECHANGE + KEY_SHIFT, 0.2 'G
SetNextKey 72, 72, "H", CASECHANGE + KEY_SHIFT, 0.2 'H
SetNextKey 73, 73, "I", CASECHANGE + KEY_SHIFT, 0.2 'I
SetNextKey 74, 74, "J", CASECHANGE + KEY_SHIFT, 0.2 'J
SetNextKey 75, 75, "K", CASECHANGE + KEY_SHIFT, 0.2 'K
SetNextKey 76, 76, "L", CASECHANGE + KEY_SHIFT, 0.2 'L
SetNextKey 77, 77, "M", CASECHANGE + KEY_SHIFT, 0.2 'M
SetNextKey 78, 78, "N", CASECHANGE + KEY_SHIFT, 0.2 'N
SetNextKey 79, 79, "O", CASECHANGE + KEY_SHIFT, 0.2 'O
SetNextKey 80, 80, "P", CASECHANGE + KEY_SHIFT, 0.2 'P
SetNextKey 81, 81, "Q", CASECHANGE + KEY_SHIFT, 0.2 'Q
SetNextKey 82, 82, "R", CASECHANGE + KEY_SHIFT, 0.2 'R
SetNextKey 83, 83, "S", CASECHANGE + KEY_SHIFT, 0.2 'S
SetNextKey 84, 84, "T", CASECHANGE + KEY_SHIFT, 0.2 'T
SetNextKey 85, 85, "U", CASECHANGE + KEY_SHIFT, 0.2 'U
SetNextKey 86, 86, "V", CASECHANGE + KEY_SHIFT, 0.2 'V
SetNextKey 87, 87, "W", CASECHANGE + KEY_SHIFT, 0.2 'W
SetNextKey 88, 88, "X", CASECHANGE + KEY_SHIFT, 0.2 'X
SetNextKey 89, 89, "Y", CASECHANGE + KEY_SHIFT, 0.2 'Y
SetNextKey 90, 90, "Z", CASECHANGE + KEY_SHIFT, 0.2 'Z
SetNextKey 65, 97, "a", CASECHANGE + KEY_NO_SHIFT, 0.2 'a
SetNextKey 66, 98, "b", CASECHANGE + KEY_NO_SHIFT, 0.2 'b
SetNextKey 67, 99, "c", CASECHANGE + KEY_NO_SHIFT, 0.2 'c
SetNextKey 68, 100, "d", CASECHANGE + KEY_NO_SHIFT, 0.2 'd
SetNextKey 69, 101, "e", CASECHANGE + KEY_NO_SHIFT, 0.2 'e
SetNextKey 70, 102, "f", CASECHANGE + KEY_NO_SHIFT, 0.2 'f
SetNextKey 71, 103, "g", CASECHANGE + KEY_NO_SHIFT, 0.2 'g
SetNextKey 72, 104, "h", CASECHANGE + KEY_NO_SHIFT, 0.2 'h
SetNextKey 73, 105, "i", CASECHANGE + KEY_NO_SHIFT, 0.2 'i
SetNextKey 74, 106, "j", CASECHANGE + KEY_NO_SHIFT, 0.2 'j
SetNextKey 75, 107, "k", CASECHANGE + KEY_NO_SHIFT, 0.2 'k
SetNextKey 76, 108, "l", CASECHANGE + KEY_NO_SHIFT, 0.2 'l
SetNextKey 77, 109, "m", CASECHANGE + KEY_NO_SHIFT, 0.2 'm
SetNextKey 78, 110, "n", CASECHANGE + KEY_NO_SHIFT, 0.2 'n
SetNextKey 79, 111, "o", CASECHANGE + KEY_NO_SHIFT, 0.2 'o
SetNextKey 80, 112, "p", CASECHANGE + KEY_NO_SHIFT, 0.2 'p
SetNextKey 81, 113, "q", CASECHANGE + KEY_NO_SHIFT, 0.2 'q
SetNextKey 82, 114, "r", CASECHANGE + KEY_NO_SHIFT, 0.2 'r
SetNextKey 83, 115, "s", CASECHANGE + KEY_NO_SHIFT, 0.2 's
SetNextKey 84, 116, "t", CASECHANGE + KEY_NO_SHIFT, 0.2 't
SetNextKey 85, 117, "u", CASECHANGE + KEY_NO_SHIFT, 0.2 'u
SetNextKey 86, 118, "v", CASECHANGE + KEY_NO_SHIFT, 0.2 'v
SetNextKey 87, 119, "w", CASECHANGE + KEY_NO_SHIFT, 0.2 'w
SetNextKey 88, 120, "x", CASECHANGE + KEY_NO_SHIFT, 0.2 'x
SetNextKey 89, 121, "y", CASECHANGE + KEY_NO_SHIFT, 0.2 'y
SetNextKey 90, 122, "z", CASECHANGE + KEY_NO_SHIFT, 0.2 'z
SetNextKey 91, 100311, "VK_LWIN", TOGGLE, 0.2 'Left WIN
SetNextKey 92, 100312, "VK_RWIN", TOGGLE, 0.2 'Right WIN
SetNextKey 93, 100319, "VK_APPS", TOGGLE, 0.2 'Applications Key (Menu key)
SetNextKey 94, 900094, "RESERVED", NONE, 0 'Reserved
SetNextKey 95, 900095, "VK_SLEEP", NONE, 0.2 'VK_SLEEP
SetNextKey 96, 48, "0", NONE, 0.2 'Numpad 0
SetNextKey 97, 49, "1", NONE, 0.2 'Numpad 1
SetNextKey 98, 50, "2", NONE, 0.2 'Numpad 2
SetNextKey 99, 51, "3", NONE, 0.2 'Numpad 3
SetNextKey 100, 52, "4", NONE, 0.2 'Numpad 4
SetNextKey 101, 53, "5", NONE, 0.2 'Numpad 5
SetNextKey 102, 54, "6", NONE, 0.2 'Numpad 6
SetNextKey 103, 55, "7", NONE, 0.2 'Numpad 7
SetNextKey 104, 56, "8", NONE, 0.2 'Numpad 8
SetNextKey 105, 57, "9", NONE, 0.2 'Numpad 9
SetNextKey 106, 42, "*", NONE, 0.2 'Muliply
SetNextKey 107, 43, "+", NONE, 0.2 'Add
SetNextKey 108, 900108, "VK_SEPARATOR", NONE, 0.2 'VK_SEPARATOR (Whatever the hell that is)
SetNextKey 109, 51, "-", NONE, 0.2 'Subtract
SetNextKey 110, 52, ".", NONE, 0.2 'Decimal
SetNextKey 111, 53, "/", NONE, 0.2 'Divide
SetNextKey
112, 15104, CHR$(0) + CHR$(59), NONE
, 0.2 'F1 SetNextKey
113, 15360, CHR$(0) + CHR$(60), NONE
, 0.2 'F2 SetNextKey
114, 15616, CHR$(0) + CHR$(61), NONE
, 0.2 'F3 SetNextKey
115, 15872, CHR$(0) + CHR$(62), NONE
, 0.2 'F4 SetNextKey
116, 16128, CHR$(0) + CHR$(63), NONE
, 0.2 'F5 SetNextKey
117, 16384, CHR$(0) + CHR$(64), NONE
, 0.2 'F6 SetNextKey
118, 16640, CHR$(0) + CHR$(65), NONE
, 0.2 'F7 SetNextKey
119, 16896, CHR$(0) + CHR$(66), NONE
, 0.2 'F8 SetNextKey
120, 17152, CHR$(0) + CHR$(67), NONE
, 0.2 'F9 SetNextKey
121, 17408, CHR$(0) + CHR$(68), NONE
, 0.2 'F10 SetNextKey
122, 34048, CHR$(0) + CHR$(133), NONE
, 0.2 'F11 SetNextKey
123, 34304, CHR$(0) + CHR$(134), NONE
, 0.2 'F12 SetNextKey 124, 900124, "F13", NONE, 0.2 'F13
SetNextKey 125, 900125, "F14", NONE, 0.2 'F14
SetNextKey 126, 900126, "F15", NONE, 0.2 'F15
SetNextKey 127, 900127, "F16", NONE, 0.2 'F16
SetNextKey 128, 900128, "F17", NONE, 0.2 'F17
SetNextKey 129, 900129, "F18", NONE, 0.2 'F18
SetNextKey 130, 900130, "F19", NONE, 0.2 'F19
SetNextKey 131, 900131, "F20", NONE, 0.2 'F20
SetNextKey 132, 900132, "F21", NONE, 0.2 'F21
SetNextKey 133, 900133, "F22", NONE, 0.2 'F22
SetNextKey 134, 900134, "F23", NONE, 0.2 'F23
SetNextKey 135, 900135, "F24", NONE, 0.2 'F24
SetNextKey i, 900000 + i, "UNASSIGNED", NONE, 0 'Unassigned
SetNextKey 144, 100300, "VK_NUMLOCK", TOGGLE, 0.2 'NUM LOCK
SetNextKey 145, 100302, "VK_SCROLL", TOGGLE, 0.2 'SCROLL LOCK
SetNextKey 146, 900146, "OEM SPECIFIC", NONE, 0 'OEM SPECIFIC
SetNextKey 147, 900147, "OEM SPECIFIC", NONE, 0 'OEM SPECIFIC
SetNextKey 148, 900148, "OEM SPECIFIC", NONE, 0 'OEM SPECIFIC
SetNextKey 149, 900149, "OEM SPECIFIC", NONE, 0 'OEM SPECIFIC
SetNextKey 150, 900150, "OEM SPECIFIC", NONE, 0 'OEM SPECIFIC
SetNextKey i, 900000 + i, "UNASSIGNED", NONE, 0 'Unassigned
SetNextKey 160, 100304, "VK_LSHIFT", TOGGLE, 0.2 'Left SHIFT
SetNextKey 161, 100303, "VK_RSHIFT", TOGGLE, 0.2 'Right SHIFT
SetNextKey 162, 100306, "VK_LCONTROL", TOGGLE, 0.2 'Left CONTROL
SetNextKey 163, 100305, "VK_RCONTROL", TOGGLE, 0.2 'Right CONTROL
SetNextKey 164, 100308, "VK_LMENU", TOGGLE, 0.2 'Left Alt (Why does MS document these as Menu keys??)
SetNextKey 165, 100309, "VK_RMENU", TOGGLE, 0.2 'Right Alt
SetNextKey 166, 900166, "BK_BROWSER_BACK", NONE, 0.2 'Browser back
SetNextKey 167, 900167, "BK_BROWSER_FORWARD", NONE, 0.2 'Browser forwar
SetNextKey 168, 900168, "BK_BROWSER_REFRESH", NONE, 0.2 'Browser refresh
SetNextKey 169, 900169, "BK_BROWSER_STOP", NONE, 0.2 'Browser stop
SetNextKey 170, 900170, "BK_BROWSER_SEARCH", NONE, 0.2 'Browser search
SetNextKey 171, 900171, "BK_BROWSER_FAVORITES", NONE, 0.2 'Browser favorites
SetNextKey 172, 900172, "BK_BROWSER_HOME", NONE, 0.2 'Browser home
SetNextKey 173, 900173, "BK_VOLUME_MUTE", NONE, 0.2 'Mute
SetNextKey 174, 900174, "BK_VOLUME_DOWN", NONE, 0.2 'Vol Down
SetNextKey 175, 900175, "BK_VOLUME_UP", NONE, 0.2 'Vol Up
SetNextKey 176, 900176, "VK_MEDIA_NEXT_TRACK", NONE, 0.2 'Media Next
SetNextKey 177, 900177, "VK_MEDIA_PREV_TRACK", NONE, 0.2 'Media Prev
SetNextKey 178, 900178, "VK_MEDIA_STOP", NONE, 0.2 'Media Stop
SetNextKey 179, 900179, "VK_MEDIA_PLAY_PAUSE", NONE, 0.2 'Media Play/Pause
SetNextKey 180, 900180, "VK_LAUNCH_MAIL", NONE, 0.2 'Launch Mail
SetNextKey 181, 900181, "VK_LAUNCH_MEDIA_SELECT", NONE, 0.2 'Launch Media Select
SetNextKey 182, 900182, "VK_LAUNCH_APP1", NONE, 0.2 'Launch App1
SetNextKey 183, 900183, "VK_LAUNCH_APP1", NONE, 0.2 'Launch App2
SetNextKey 184, 900184, "RESERVED", NONE, 0 'Reserved
SetNextKey 185, 900185, "RESERVED", NONE, 0 'Reserved
SetNextKey 186, 59, ";", KEY_NO_SHIFT, 0.2 'US STANDARD ;:
SetNextKey 186, 58, ":", KEY_SHIFT, 0.2 'US STANDARD ;:
SetNextKey 187, 61, "=", KEY_NO_SHIFT, 0.2 '=
SetNextKey 187, 43, "+", KEY_SHIFT, 0.2 '+
SetNextKey 188, 44, ",", KEY_NO_SHIFT, 0.2 ',
SetNextKey 188, 60, "<", KEY_SHIFT, 0.2 ',
SetNextKey 189, 45, "-", KEY_NO_SHIFT, 0.2 '-
SetNextKey 189, 95, "_", KEY_SHIFT, 0.2 '-
SetNextKey 190, 46, ".", KEY_NO_SHIFT, 0.2 '.
SetNextKey 190, 62, ">", KEY_SHIFT, 0.2 '.
SetNextKey 191, 47, "/", KEY_NO_SHIFT, 0.2 'US STANDARD /?
SetNextKey 191, 63, "?", KEY_SHIFT, 0.2 'US STANDARD ?
SetNextKey 192, 96, "`", KEY_NO_SHIFT, 0.2 'US STANARD `
SetNextKey 192, 126, "~", KEY_SHIFT, 0.2 'US STANDARD ~
SetNextKey i, 900000 + i, "RESERVED", NONE, 0 'Reserved
SetNextKey i, 900000 + i, "UNASSIGNED", NONE, 0 'Unassigned
SetNextKey 219, 91, "[", KEY_NO_SHIFT, 0.2 'US STANDARD [
SetNextKey 219, 123, "{", KEY_SHIFT, 0.2 'US STANDARD {
SetNextKey 220, 92, "\", KEY_NO_SHIFT, 0.2 'US STANDARD \
SetNextKey 220, 124, "|", KEY_SHIFT, 0.2 'US STANDARD |
SetNextKey 221, 93, "]", KEY_NO_SHIFT, 0.2 'US STANDARD ]
SetNextKey 221, 125, "}", KEY_SHIFT, 0.2 'US STANDARD }
SetNextKey 222, 39, "'", KEY_NO_SHIFT, 0.2 'US STANDARD '
SetNextKey
222, 34, CHR$(34), KEY_SHIFT
, 0.2 'US STANDARD "
SetNextKey 223, 900223, "VK_OEM_8", NONE, 0 'OEM SPECIFIC
SetNextKey 224, 900224, "RESERVED", NONE, 0 'Reserved
SetNextKey 225, 900225, "OEM SPECIFIC", NONE, 0 'OEM SPECIFIC
SetNextKey 226, 900226, "VK_OEM_102", NONE, 0 'Either the Angle Bracket key, or Backslash on RT 102-key keyboard
SetNextKey 227, 900227, "OEM SPECIFIC", NONE, 0 'OEM SPECIFIC
SetNextKey 228, 900228, "OEM SPECIFIC", NONE, 0 'OEM SPECIFIC
SetNextKey 229, 900229, "VK_PROCESS", NONE, 0 'IME PROCESS key (whatever that is)
SetNextKey 230, 900230, "OEM SPECIFIC", NONE, 0 'OEM SPECIFIC
SetNextKey 231, 900231, "VK_PACKET", NONE, 0 'Used to pass UNICODE characters (however that works)
SetNextKey 232, 900232, "UNASSIGNED", NONE, 0 'Unassigned
SetNextKey i, 900000 + i, "OEM SPECIFIC", NONE, 0 'OEM SPECIFIC
SetNextKey 246, 900246, "VK_ATTN", NONE, 0 'VK_ATTN
SetNextKey 247, 900247, "VK_CRSEL", NONE, 0 'VK_CRSEL
SetNextKey 248, 900248, "VK_EXSEL", NONE, 0 'VK_EXSEL
SetNextKey 249, 900249, "VK_EREOF", NONE, 0 'VK_EREOF
SetNextKey 250, 900250, "VK_PLAY", NONE, 0 'VK_PLAY
SetNextKey 251, 900251, "VK_ZOOM", NONE, 0 'VK_ZOOM
SetNextKey 252, 900252, "RESERVED", NONE, 0 'RESERVED
SetNextKey 253, 900253, "VK_PA1", NONE, 0 'VK_PA1
SetNextKey 254, 900254, "VK_OEM_CLEAR", NONE, 0 'VK_OEM_CLEAR