Attribute VB_Name = "VBKeyFunctions" Option Explicit '======================================================================= ' Filename: VBKeyFunctions.bas ' Written By: Ryan Olbe ' Website: http://www.rolbe.com ' Last Updated: May 31, 2006 '======================================================================= ' ' Functions contained in this Module ' ' 1.) ConstantFromKeyAscii(keyascii As Integer) As String ' 2.) ConstantFromKeyCode(keycode As Integer) As String ' 3.) WriteCharFromKeyCode(keycode As Integer, shiftdown As Boolean) As String ' 4.) WriteCharFromKeyAscii(keyascii As Integer) As String ' 5.) WriteKeyAsciiFromKeyCode(keycode As Integer, shiftdown As Boolean) as String ' 6.) WriteKeyCodeFromKeyAscii(keyascii As Integer) As String ' 7.) WriteKeyAsciiFromChar(someChar as String) as Integer ' 8.) WriteKeyCodeFromChar(someChar as String) as Integer ' 9.) IsShiftCharacter(someChar as String) as Boolean ' 10.) IsShiftDown(shift as integer) as Boolean ' 11.) IsCtrlDown(shift as integer) as Boolean ' 12.) IsAltDown(shift as integer) as Boolean ' ----------------------------------------- ' Notes about Chr() and Asc() ' ----------------------------------------- ' The Chr() function returns the character (in string form) corresponding to a ' given ASCII code. For example, Chr(66) returns "B", the character equivalent ' of KeyAscii value 66. You can ONLY give Chr() a numeric value that is between ' 0 and 255. If you give Chr() a number that's larger than 255 you will get a ' run-time error which says "invalid procedure call or argument". ' The Asc() function returns the ASCII code corresponding to a given character. ' For example, Asc("a") returns 97, the ASCII code for lowercase "a". If the ' given string contains more than one character, Asc() returns the ASCII code ' of the first character only. ' ----------------------------------------- '1.) ConstantFromKeyAscii() is a function that will take 'a keyascii value and will output the corresponding VB Constant value '(if one exists). If one does not exist, the function will return "N/A" Public Function ConstantFromKeyAscii(KeyAscii As Integer) As String Select Case KeyAscii Case 8: ConstantFromKeyAscii = "vbKeyBack" Case 9: ConstantFromKeyAscii = "vbKeyTab" Case 13: ConstantFromKeyAscii = "vbKeyReturn" Case 27: ConstantFromKeyAscii = "vbKeyEscape" Case 32: ConstantFromKeyAscii = "vbKeySpace" Case 33: ConstantFromKeyAscii = "vbKey1" '! Case 35: ConstantFromKeyAscii = "vbKey3" '# Case 36: ConstantFromKeyAscii = "vbKey4" '$ Case 37: ConstantFromKeyAscii = "vbKey5" '% Case 38: ConstantFromKeyAscii = "vbKey7" '& Case 40: ConstantFromKeyAscii = "vbKey9" '( Case 41: ConstantFromKeyAscii = "vbKey0" ') Case 42: ConstantFromKeyAscii = "vbKey8" '* Case 48: ConstantFromKeyAscii = "vbKey0" Case 49: ConstantFromKeyAscii = "vbKey1" Case 50: ConstantFromKeyAscii = "vbKey2" Case 51: ConstantFromKeyAscii = "vbKey3" Case 52: ConstantFromKeyAscii = "vbKey4" Case 53: ConstantFromKeyAscii = "vbKey5" Case 54: ConstantFromKeyAscii = "vbKey6" Case 55: ConstantFromKeyAscii = "vbKey7" Case 56: ConstantFromKeyAscii = "vbKey8" Case 57: ConstantFromKeyAscii = "vbKey9" Case 64: ConstantFromKeyAscii = "vbKey2" '@ Case 65: ConstantFromKeyAscii = "vbKeyA" Case 66: ConstantFromKeyAscii = "vbKeyB" Case 67: ConstantFromKeyAscii = "vbKeyC" Case 68: ConstantFromKeyAscii = "vbKeyD" Case 69: ConstantFromKeyAscii = "vbKeyE" Case 70: ConstantFromKeyAscii = "vbKeyF" Case 71: ConstantFromKeyAscii = "vbKeyG" Case 72: ConstantFromKeyAscii = "vbKeyH" Case 73: ConstantFromKeyAscii = "vbKeyI" Case 74: ConstantFromKeyAscii = "vbKeyJ" Case 75: ConstantFromKeyAscii = "vbKeyK" Case 76: ConstantFromKeyAscii = "vbKeyL" Case 77: ConstantFromKeyAscii = "vbKeyM" Case 78: ConstantFromKeyAscii = "vbKeyN" Case 79: ConstantFromKeyAscii = "vbKeyO" Case 80: ConstantFromKeyAscii = "vbKeyP" Case 81: ConstantFromKeyAscii = "vbKeyQ" Case 82: ConstantFromKeyAscii = "vbKeyR" Case 83: ConstantFromKeyAscii = "vbKeyS" Case 84: ConstantFromKeyAscii = "vbKeyT" Case 85: ConstantFromKeyAscii = "vbKeyU" Case 86: ConstantFromKeyAscii = "vbKeyV" Case 87: ConstantFromKeyAscii = "vbKeyW" Case 88: ConstantFromKeyAscii = "vbKeyX" Case 89: ConstantFromKeyAscii = "vbKeyY" Case 90: ConstantFromKeyAscii = "vbKeyZ" Case 94: ConstantFromKeyAscii = "vbKey6" '^ Case 97: ConstantFromKeyAscii = "vbKeyA" 'a Case 98: ConstantFromKeyAscii = "vbKeyB" 'b Case 99: ConstantFromKeyAscii = "vbKeyC" 'c Case 100: ConstantFromKeyAscii = "vbKeyD" 'd Case 101: ConstantFromKeyAscii = "vbKeyE" 'e Case 102: ConstantFromKeyAscii = "vbKeyF" 'f Case 103: ConstantFromKeyAscii = "vbKeyG" 'g Case 104: ConstantFromKeyAscii = "vbKeyH" 'h Case 105: ConstantFromKeyAscii = "vbKeyI" 'i Case 106: ConstantFromKeyAscii = "vbKeyJ" 'j Case 107: ConstantFromKeyAscii = "vbKeyK" 'k Case 108: ConstantFromKeyAscii = "vbKeyL" 'l Case 109: ConstantFromKeyAscii = "vbKeyM" 'm Case 110: ConstantFromKeyAscii = "vbKeyN" 'n Case 111: ConstantFromKeyAscii = "vbKeyO" 'o Case 112: ConstantFromKeyAscii = "vbKeyP" 'p Case 113: ConstantFromKeyAscii = "vbKeyQ" 'q Case 114: ConstantFromKeyAscii = "vbKeyR" 'r Case 115: ConstantFromKeyAscii = "vbKeyS" 's Case 116: ConstantFromKeyAscii = "vbKeyT" 't Case 117: ConstantFromKeyAscii = "vbKeyU" 'u Case 118: ConstantFromKeyAscii = "vbKeyV" 'v Case 119: ConstantFromKeyAscii = "vbKeyW" 'w Case 120: ConstantFromKeyAscii = "vbKeyX" 'x Case 121: ConstantFromKeyAscii = "vbKeyY" 'y Case 122: ConstantFromKeyAscii = "vbKeyZ" 'z Case Else: ConstantFromKeyAscii = "N/A" End Select End Function '2.) ConstantFromKeyCode() is a function that will take 'a KeyCode value and will output the corresponding VB Constant value '(if one exists). If one does not exist, the function will return "N/A". Public Function ConstantFromKeyCode(KeyCode As Integer) As String Select Case KeyCode Case 1: ConstantFromKeyCode = "vbKeyLButton" Case 2: ConstantFromKeyCode = "vbKeyRButton" Case 3: ConstantFromKeyCode = "vbKeyCancel" Case 4: ConstantFromKeyCode = "vbKeyMButton" Case 8: ConstantFromKeyCode = "vbKeyBack" Case 9: ConstantFromKeyCode = "vbKeyTab" Case 12: ConstantFromKeyCode = "vbKeyClear" Case 13: ConstantFromKeyCode = "vbKeyReturn" Case 16: ConstantFromKeyCode = "vbKeyShift" Case 17: ConstantFromKeyCode = "vbKeyControl" Case 18: ConstantFromKeyCode = "vbKeyMenu" Case 19: ConstantFromKeyCode = "vbKeyPause" Case 20: ConstantFromKeyCode = "vbKeyCapital" Case 27: ConstantFromKeyCode = "vbKeyEscape" Case 32: ConstantFromKeyCode = "vbKeySpace" Case 33: ConstantFromKeyCode = "vbKeyPageUp" Case 34: ConstantFromKeyCode = "vbKeyPageDown" Case 35: ConstantFromKeyCode = "vbKeyEnd" Case 36: ConstantFromKeyCode = "vbKeyHome" Case 37: ConstantFromKeyCode = "vbKeyLeft" Case 38: ConstantFromKeyCode = "vbKeyUp" Case 39: ConstantFromKeyCode = "vbKeyRight" Case 40: ConstantFromKeyCode = "vbKeyDown" Case 41: ConstantFromKeyCode = "vbKeySelect" Case 42: ConstantFromKeyCode = "vbKeyPrint" Case 43: ConstantFromKeyCode = "vbKeyExecute" Case 44: ConstantFromKeyCode = "vbKeySnapshot" Case 45: ConstantFromKeyCode = "vbKeyInsert" Case 46: ConstantFromKeyCode = "vbKeyDelete" Case 47: ConstantFromKeyCode = "vbKeyHelp" Case 48: ConstantFromKeyCode = "vbKey0" Case 49: ConstantFromKeyCode = "vbKey1" Case 50: ConstantFromKeyCode = "vbKey2" Case 51: ConstantFromKeyCode = "vbKey3" Case 52: ConstantFromKeyCode = "vbKey4" Case 53: ConstantFromKeyCode = "vbKey5" Case 54: ConstantFromKeyCode = "vbKey6" Case 55: ConstantFromKeyCode = "vbKey7" Case 56: ConstantFromKeyCode = "vbKey8" Case 57: ConstantFromKeyCode = "vbKey9" Case 65: ConstantFromKeyCode = "vbKeyA" Case 66: ConstantFromKeyCode = "vbKeyB" Case 67: ConstantFromKeyCode = "vbKeyC" Case 68: ConstantFromKeyCode = "vbKeyD" Case 69: ConstantFromKeyCode = "vbKeyE" Case 70: ConstantFromKeyCode = "vbKeyF" Case 71: ConstantFromKeyCode = "vbKeyG" Case 72: ConstantFromKeyCode = "vbKeyH" Case 73: ConstantFromKeyCode = "vbKeyI" Case 74: ConstantFromKeyCode = "vbKeyJ" Case 75: ConstantFromKeyCode = "vbKeyK" Case 76: ConstantFromKeyCode = "vbKeyL" Case 77: ConstantFromKeyCode = "vbKeyM" Case 78: ConstantFromKeyCode = "vbKeyN" Case 79: ConstantFromKeyCode = "vbKeyO" Case 80: ConstantFromKeyCode = "vbKeyP" Case 81: ConstantFromKeyCode = "vbKeyQ" Case 82: ConstantFromKeyCode = "vbKeyR" Case 83: ConstantFromKeyCode = "vbKeyS" Case 84: ConstantFromKeyCode = "vbKeyT" Case 85: ConstantFromKeyCode = "vbKeyU" Case 86: ConstantFromKeyCode = "vbKeyV" Case 87: ConstantFromKeyCode = "vbKeyW" Case 88: ConstantFromKeyCode = "vbKeyX" Case 89: ConstantFromKeyCode = "vbKeyY" Case 90: ConstantFromKeyCode = "vbKeyZ" Case 96: ConstantFromKeyCode = "vbKeyNumpad0" Case 97: ConstantFromKeyCode = "vbKeyNumpad1" Case 98: ConstantFromKeyCode = "vbKeyNumpad2" Case 99: ConstantFromKeyCode = "vbKeyNumpad3" Case 100: ConstantFromKeyCode = "vbKeyNumpad4" Case 101: ConstantFromKeyCode = "vbKeyNumpad5" Case 102: ConstantFromKeyCode = "vbKeyNumpad6" Case 103: ConstantFromKeyCode = "vbKeyNumpad7" Case 104: ConstantFromKeyCode = "vbKeyNumpad8" Case 105: ConstantFromKeyCode = "vbKeyNumpad9" Case 106: ConstantFromKeyCode = "vbKeyMultiply" Case 107: ConstantFromKeyCode = "vbKeyAdd" Case 108: ConstantFromKeyCode = "vbKeySeparator" Case 109: ConstantFromKeyCode = "vbKeySubtract" Case 110: ConstantFromKeyCode = "vbKeyDecimal" Case 111: ConstantFromKeyCode = "vbKeyDivide" Case 112: ConstantFromKeyCode = "vbKeyF1" Case 113: ConstantFromKeyCode = "vbKeyF2" Case 114: ConstantFromKeyCode = "vbKeyF3" Case 115: ConstantFromKeyCode = "vbKeyF4" Case 116: ConstantFromKeyCode = "vbKeyF5" Case 117: ConstantFromKeyCode = "vbKeyF6" Case 118: ConstantFromKeyCode = "vbKeyF7" Case 119: ConstantFromKeyCode = "vbKeyF8" Case 120: ConstantFromKeyCode = "vbKeyF9" Case 121: ConstantFromKeyCode = "vbKeyF10" Case 122: ConstantFromKeyCode = "vbKeyF11" Case 123: ConstantFromKeyCode = "vbKeyF12" Case 124: ConstantFromKeyCode = "vbKeyF13" Case 125: ConstantFromKeyCode = "vbKeyF14" Case 126: ConstantFromKeyCode = "vbKeyF15" Case 127: ConstantFromKeyCode = "vbKeyF16" Case 144: ConstantFromKeyCode = "vbKeyNumlock" Case Else: ConstantFromKeyCode = "N/A" End Select End Function '3.) WriteCharFromKeyCode() is a function that will take 'a keycode value and will output it's respective character. 'It takes two arguments, one is the keycode number itself and the 'other is a boolean value called shiftdown. If the SHIFT key is being 'held down you would say true, and if it's not you would say false. 'This function will then return the approriate character. Public Function WriteCharFromKeyCode(KeyCode As Integer, shiftdown As Boolean) As String If shiftdown = True Then 'shift is down Select Case KeyCode Case 0: WriteCharFromKeyCode = "NO KEY" Case 1: WriteCharFromKeyCode = "LMOUSE" Case 2: WriteCharFromKeyCode = "RMOUSE" Case 3: WriteCharFromKeyCode = "CANCEL" Case 4: WriteCharFromKeyCode = "MMOUSE" Case 5: WriteCharFromKeyCode = "FIRST X" Case 6: WriteCharFromKeyCode = "SECOND X" Case 7: WriteCharFromKeyCode = "Undefined" Case 8: WriteCharFromKeyCode = "BACKSPACE" Case 9: WriteCharFromKeyCode = "TAB" Case 10: WriteCharFromKeyCode = "LINEFEED" Case 11: WriteCharFromKeyCode = "Undefined" Case 12: WriteCharFromKeyCode = "CLEAR" Case 13: WriteCharFromKeyCode = "RETURN" Case 14: WriteCharFromKeyCode = "Undefined" Case 15: WriteCharFromKeyCode = "Undefined" Case 16: WriteCharFromKeyCode = "SHIFT" Case 17: WriteCharFromKeyCode = "CTRL" Case 18: WriteCharFromKeyCode = "ALT" Case 19: WriteCharFromKeyCode = "PAUSE" Case 20: WriteCharFromKeyCode = "CAPSLOCK" Case 21: WriteCharFromKeyCode = "IME_KANA" Case 22: WriteCharFromKeyCode = "Undefined" Case 23: WriteCharFromKeyCode = "IME_JUNJA" Case 24: WriteCharFromKeyCode = "IME_FINAL" Case 25: WriteCharFromKeyCode = "IME_HANJA" Case 26: WriteCharFromKeyCode = "Undefined" Case 27: WriteCharFromKeyCode = "ESC" Case 28: WriteCharFromKeyCode = "IME_CONV" Case 29: WriteCharFromKeyCode = "IME_NONC" Case 30: WriteCharFromKeyCode = "IME_ACPT" Case 31: WriteCharFromKeyCode = "IME_MODE" Case 32: WriteCharFromKeyCode = "SPACE" Case 33: WriteCharFromKeyCode = "PGUP" Case 34: WriteCharFromKeyCode = "PGDN" Case 35: WriteCharFromKeyCode = "END" Case 36: WriteCharFromKeyCode = "HOME" Case 37: WriteCharFromKeyCode = "LEFT" Case 38: WriteCharFromKeyCode = "UP" Case 39: WriteCharFromKeyCode = "RIGHT" Case 40: WriteCharFromKeyCode = "DOWN" Case 41: WriteCharFromKeyCode = "SELECT" Case 42: WriteCharFromKeyCode = "PRINT" Case 43: WriteCharFromKeyCode = "EXECUTE" Case 44: WriteCharFromKeyCode = "PRINTSCR" Case 45: WriteCharFromKeyCode = "INSERT" Case 46: WriteCharFromKeyCode = "DELETE" Case 47: WriteCharFromKeyCode = "HELP" Case 48: WriteCharFromKeyCode = ")" Case 49: WriteCharFromKeyCode = "!" Case 50: WriteCharFromKeyCode = "@" Case 51: WriteCharFromKeyCode = "#" Case 52: WriteCharFromKeyCode = "$" Case 53: WriteCharFromKeyCode = "%" Case 54: WriteCharFromKeyCode = "^" Case 55: WriteCharFromKeyCode = "&" Case 56: WriteCharFromKeyCode = "*" Case 57: WriteCharFromKeyCode = "(" Case 58: WriteCharFromKeyCode = "Undefined" Case 59: WriteCharFromKeyCode = "Undefined" Case 60: WriteCharFromKeyCode = "Undefined" Case 61: WriteCharFromKeyCode = "Undefined" Case 62: WriteCharFromKeyCode = "Undefined" Case 63: WriteCharFromKeyCode = "Undefined" Case 64: WriteCharFromKeyCode = "Undefined" Case 65: WriteCharFromKeyCode = "A" Case 66: WriteCharFromKeyCode = "B" Case 67: WriteCharFromKeyCode = "C" Case 68: WriteCharFromKeyCode = "D" Case 69: WriteCharFromKeyCode = "E" Case 70: WriteCharFromKeyCode = "F" Case 71: WriteCharFromKeyCode = "G" Case 72: WriteCharFromKeyCode = "H" Case 73: WriteCharFromKeyCode = "I" Case 74: WriteCharFromKeyCode = "J" Case 75: WriteCharFromKeyCode = "K" Case 76: WriteCharFromKeyCode = "L" Case 77: WriteCharFromKeyCode = "M" Case 78: WriteCharFromKeyCode = "N" Case 79: WriteCharFromKeyCode = "O" Case 80: WriteCharFromKeyCode = "P" Case 81: WriteCharFromKeyCode = "Q" Case 82: WriteCharFromKeyCode = "R" Case 83: WriteCharFromKeyCode = "S" Case 84: WriteCharFromKeyCode = "T" Case 85: WriteCharFromKeyCode = "U" Case 86: WriteCharFromKeyCode = "V" Case 87: WriteCharFromKeyCode = "W" Case 88: WriteCharFromKeyCode = "X" Case 89: WriteCharFromKeyCode = "Y" Case 90: WriteCharFromKeyCode = "Z" Case 91: WriteCharFromKeyCode = "LWINDOWS" Case 92: WriteCharFromKeyCode = "RWINDOWS" Case 93: WriteCharFromKeyCode = "CONTEXT" Case 94: WriteCharFromKeyCode = "Reserved" Case 95: WriteCharFromKeyCode = "SLEEP" Case 96: WriteCharFromKeyCode = "INSERT" Case 97: WriteCharFromKeyCode = "END" Case 98: WriteCharFromKeyCode = "DOWN" Case 99: WriteCharFromKeyCode = "PGDN" Case 100: WriteCharFromKeyCode = "LEFT" Case 101: WriteCharFromKeyCode = "5" Case 102: WriteCharFromKeyCode = "RIGHT" Case 103: WriteCharFromKeyCode = "HOME" Case 104: WriteCharFromKeyCode = "UP" Case 105: WriteCharFromKeyCode = "PGUP" Case 106: WriteCharFromKeyCode = "*" Case 107: WriteCharFromKeyCode = "+" Case 108: WriteCharFromKeyCode = "SEPARATOR" Case 109: WriteCharFromKeyCode = "-" Case 110: WriteCharFromKeyCode = "DEL" Case 111: WriteCharFromKeyCode = "/" Case 112: WriteCharFromKeyCode = "F1" Case 113: WriteCharFromKeyCode = "F2" Case 114: WriteCharFromKeyCode = "F3" Case 115: WriteCharFromKeyCode = "F4" Case 116: WriteCharFromKeyCode = "F5" Case 117: WriteCharFromKeyCode = "F6" Case 118: WriteCharFromKeyCode = "F7" Case 119: WriteCharFromKeyCode = "F8" Case 120: WriteCharFromKeyCode = "F9" Case 121: WriteCharFromKeyCode = "F10" Case 122: WriteCharFromKeyCode = "F11" Case 123: WriteCharFromKeyCode = "F12" Case 124: WriteCharFromKeyCode = "F13" Case 125: WriteCharFromKeyCode = "F14" Case 126: WriteCharFromKeyCode = "F15" Case 127: WriteCharFromKeyCode = "F16" Case 128: WriteCharFromKeyCode = "F17" Case 129: WriteCharFromKeyCode = "F18" Case 130: WriteCharFromKeyCode = "F19" Case 131: WriteCharFromKeyCode = "F20" Case 132: WriteCharFromKeyCode = "F21" Case 133: WriteCharFromKeyCode = "F22" Case 134: WriteCharFromKeyCode = "F23" Case 135: WriteCharFromKeyCode = "F24" Case 136: WriteCharFromKeyCode = "Unassigned" Case 137: WriteCharFromKeyCode = "Unassigned" Case 138: WriteCharFromKeyCode = "Unassigned" Case 139: WriteCharFromKeyCode = "Unassigned" Case 140: WriteCharFromKeyCode = "Unassigned" Case 141: WriteCharFromKeyCode = "Unassigned" Case 142: WriteCharFromKeyCode = "Unassigned" Case 143: WriteCharFromKeyCode = "Unassigned" Case 144: WriteCharFromKeyCode = "NUMLOCK" Case 145: WriteCharFromKeyCode = "SCRLLOCK" Case 146: WriteCharFromKeyCode = "OEM specific" Case 147: WriteCharFromKeyCode = "OEM specific" Case 148: WriteCharFromKeyCode = "OEM specific" Case 149: WriteCharFromKeyCode = "OEM specific" Case 150: WriteCharFromKeyCode = "OEM specific" Case 151: WriteCharFromKeyCode = "Unassigned" Case 152: WriteCharFromKeyCode = "Unassigned" Case 153: WriteCharFromKeyCode = "Unassigned" Case 154: WriteCharFromKeyCode = "Unassigned" Case 155: WriteCharFromKeyCode = "Unassigned" Case 156: WriteCharFromKeyCode = "Unassigned" Case 157: WriteCharFromKeyCode = "Unassigned" Case 158: WriteCharFromKeyCode = "Unassigned" Case 159: WriteCharFromKeyCode = "Unassigned" Case 160: WriteCharFromKeyCode = "LSHIFT" Case 161: WriteCharFromKeyCode = "RSHIFT" Case 162: WriteCharFromKeyCode = "LCTRL" Case 163: WriteCharFromKeyCode = "RCTRL" Case 164: WriteCharFromKeyCode = "LALT" Case 165: WriteCharFromKeyCode = "RALT" Case 166: WriteCharFromKeyCode = "BACK" Case 167: WriteCharFromKeyCode = "FORWARD" Case 168: WriteCharFromKeyCode = "REFRESH" Case 169: WriteCharFromKeyCode = "STOP" Case 170: WriteCharFromKeyCode = "SEARCH" Case 171: WriteCharFromKeyCode = "FAVORITES" Case 172: WriteCharFromKeyCode = "HOME" Case 173: WriteCharFromKeyCode = "MUTE" Case 174: WriteCharFromKeyCode = "VOLDOWN" Case 175: WriteCharFromKeyCode = "VOLUP" Case 176: WriteCharFromKeyCode = "NEXT" Case 177: WriteCharFromKeyCode = "PREV" Case 178: WriteCharFromKeyCode = "STOP" Case 179: WriteCharFromKeyCode = "PLAY" Case 180: WriteCharFromKeyCode = "EMAIL" Case 181: WriteCharFromKeyCode = "MEDIA" Case 182: WriteCharFromKeyCode = "START1" Case 183: WriteCharFromKeyCode = "START2" Case 184: WriteCharFromKeyCode = "Reserved" Case 185: WriteCharFromKeyCode = "Reserved" Case 186: WriteCharFromKeyCode = ":" Case 187: WriteCharFromKeyCode = "+" Case 188: WriteCharFromKeyCode = "<" Case 189: WriteCharFromKeyCode = "_" Case 190: WriteCharFromKeyCode = ">" Case 191: WriteCharFromKeyCode = "?" Case 192: WriteCharFromKeyCode = "~" Case 193: WriteCharFromKeyCode = "Reserved" Case 194: WriteCharFromKeyCode = "Reserved" Case 195: WriteCharFromKeyCode = "Reserved" Case 196: WriteCharFromKeyCode = "Reserved" Case 197: WriteCharFromKeyCode = "Reserved" Case 198: WriteCharFromKeyCode = "Reserved" Case 199: WriteCharFromKeyCode = "Reserved" Case 200: WriteCharFromKeyCode = "Reserved" Case 201: WriteCharFromKeyCode = "Reserved" Case 202: WriteCharFromKeyCode = "Reserved" Case 203: WriteCharFromKeyCode = "Reserved" Case 204: WriteCharFromKeyCode = "Reserved" Case 205: WriteCharFromKeyCode = "Reserved" Case 206: WriteCharFromKeyCode = "Reserved" Case 207: WriteCharFromKeyCode = "Reserved" Case 208: WriteCharFromKeyCode = "Reserved" Case 209: WriteCharFromKeyCode = "Reserved" Case 210: WriteCharFromKeyCode = "Reserved" Case 211: WriteCharFromKeyCode = "Reserved" Case 212: WriteCharFromKeyCode = "Reserved" Case 213: WriteCharFromKeyCode = "Reserved" Case 214: WriteCharFromKeyCode = "Reserved" Case 215: WriteCharFromKeyCode = "Reserved" Case 216: WriteCharFromKeyCode = "Unassigned" Case 217: WriteCharFromKeyCode = "Unassigned" Case 218: WriteCharFromKeyCode = "Unassigned" Case 219: WriteCharFromKeyCode = "{" Case 220: WriteCharFromKeyCode = "|" Case 221: WriteCharFromKeyCode = "}" Case 222: WriteCharFromKeyCode = """" Case 223: WriteCharFromKeyCode = "MISC" Case 224: WriteCharFromKeyCode = "Reserved" Case 225: WriteCharFromKeyCode = "OEM" Case 226: WriteCharFromKeyCode = "OEM ANG" Case 227: WriteCharFromKeyCode = "OEM" Case 228: WriteCharFromKeyCode = "OEM" Case 229: WriteCharFromKeyCode = "PROCESS" Case 230: WriteCharFromKeyCode = "OEM" Case 231: WriteCharFromKeyCode = "UNICODE" Case 232: WriteCharFromKeyCode = "Unassigned" Case 233: WriteCharFromKeyCode = "OEM specific" Case 234: WriteCharFromKeyCode = "OEM specific" Case 235: WriteCharFromKeyCode = "OEM specific" Case 236: WriteCharFromKeyCode = "OEM specific" Case 237: WriteCharFromKeyCode = "OEM specific" Case 238: WriteCharFromKeyCode = "OEM specific" Case 239: WriteCharFromKeyCode = "OEM specific" Case 240: WriteCharFromKeyCode = "OEM specific" Case 241: WriteCharFromKeyCode = "OEM specific" Case 242: WriteCharFromKeyCode = "OEM specific" Case 243: WriteCharFromKeyCode = "OEM specific" Case 244: WriteCharFromKeyCode = "OEM specific" Case 245: WriteCharFromKeyCode = "OEM specific" Case 246: WriteCharFromKeyCode = "ATTN" Case 247: WriteCharFromKeyCode = "CRSEL" Case 248: WriteCharFromKeyCode = "EXSEL" Case 249: WriteCharFromKeyCode = "ERASE EOF" Case 250: WriteCharFromKeyCode = "PLAY" Case 251: WriteCharFromKeyCode = "ZOOM" Case 252: WriteCharFromKeyCode = "Reserved" Case 253: WriteCharFromKeyCode = "PA1" Case 254: WriteCharFromKeyCode = "CLEAR" Case 255: WriteCharFromKeyCode = "MISC" Case Else: WriteCharFromKeyCode = "UNKNOWN" End Select Else 'shift is not down Select Case KeyCode Case 0: WriteCharFromKeyCode = "NO KEY" Case 1: WriteCharFromKeyCode = "LMOUSE" Case 2: WriteCharFromKeyCode = "RMOUSE" Case 3: WriteCharFromKeyCode = "CANCEL" Case 4: WriteCharFromKeyCode = "MMOUSE" Case 5: WriteCharFromKeyCode = "FIRST X" Case 6: WriteCharFromKeyCode = "SECOND X" Case 7: WriteCharFromKeyCode = "Undefined" Case 8: WriteCharFromKeyCode = "BACKSPACE" Case 9: WriteCharFromKeyCode = "TAB" Case 10: WriteCharFromKeyCode = "LINEFEED" Case 11: WriteCharFromKeyCode = "Undefined" Case 12: WriteCharFromKeyCode = "CLEAR" Case 13: WriteCharFromKeyCode = "RETURN" Case 14: WriteCharFromKeyCode = "Undefined" Case 15: WriteCharFromKeyCode = "Undefined" Case 16: WriteCharFromKeyCode = "SHIFT" Case 17: WriteCharFromKeyCode = "CTRL" Case 18: WriteCharFromKeyCode = "ALT" Case 19: WriteCharFromKeyCode = "PAUSE" Case 20: WriteCharFromKeyCode = "CAPSLOCK" Case 21: WriteCharFromKeyCode = "IME_KANA" Case 22: WriteCharFromKeyCode = "Undefined" Case 23: WriteCharFromKeyCode = "IME_JUNJA" Case 24: WriteCharFromKeyCode = "IME_FINAL" Case 25: WriteCharFromKeyCode = "IME_HANJA" Case 26: WriteCharFromKeyCode = "Undefined" Case 27: WriteCharFromKeyCode = "ESC" Case 28: WriteCharFromKeyCode = "IME_CONV" Case 29: WriteCharFromKeyCode = "IME_NONC" Case 30: WriteCharFromKeyCode = "IME_ACPT" Case 31: WriteCharFromKeyCode = "IME_MODE" Case 32: WriteCharFromKeyCode = "SPACE" Case 33: WriteCharFromKeyCode = "PGUP" Case 34: WriteCharFromKeyCode = "PGDN" Case 35: WriteCharFromKeyCode = "END" Case 36: WriteCharFromKeyCode = "HOME" Case 37: WriteCharFromKeyCode = "LEFT" Case 38: WriteCharFromKeyCode = "UP" Case 39: WriteCharFromKeyCode = "RIGHT" Case 40: WriteCharFromKeyCode = "DOWN" Case 41: WriteCharFromKeyCode = "SELECT" Case 42: WriteCharFromKeyCode = "PRINT" Case 43: WriteCharFromKeyCode = "EXECUTE" Case 44: WriteCharFromKeyCode = "PRINTSCR" Case 45: WriteCharFromKeyCode = "INSERT" Case 46: WriteCharFromKeyCode = "DELETE" Case 47: WriteCharFromKeyCode = "HELP" Case 48: WriteCharFromKeyCode = "0" Case 49: WriteCharFromKeyCode = "1" Case 50: WriteCharFromKeyCode = "2" Case 51: WriteCharFromKeyCode = "3" Case 52: WriteCharFromKeyCode = "4" Case 53: WriteCharFromKeyCode = "5" Case 54: WriteCharFromKeyCode = "6" Case 55: WriteCharFromKeyCode = "7" Case 56: WriteCharFromKeyCode = "8" Case 57: WriteCharFromKeyCode = "9" Case 58: WriteCharFromKeyCode = "Undefined" Case 59: WriteCharFromKeyCode = "Undefined" Case 60: WriteCharFromKeyCode = "Undefined" Case 61: WriteCharFromKeyCode = "Undefined" Case 62: WriteCharFromKeyCode = "Undefined" Case 63: WriteCharFromKeyCode = "Undefined" Case 64: WriteCharFromKeyCode = "Undefined" Case 65: WriteCharFromKeyCode = "A" Case 66: WriteCharFromKeyCode = "B" Case 67: WriteCharFromKeyCode = "C" Case 68: WriteCharFromKeyCode = "D" Case 69: WriteCharFromKeyCode = "E" Case 70: WriteCharFromKeyCode = "F" Case 71: WriteCharFromKeyCode = "G" Case 72: WriteCharFromKeyCode = "H" Case 73: WriteCharFromKeyCode = "I" Case 74: WriteCharFromKeyCode = "J" Case 75: WriteCharFromKeyCode = "K" Case 76: WriteCharFromKeyCode = "L" Case 77: WriteCharFromKeyCode = "M" Case 78: WriteCharFromKeyCode = "N" Case 79: WriteCharFromKeyCode = "O" Case 80: WriteCharFromKeyCode = "P" Case 81: WriteCharFromKeyCode = "Q" Case 82: WriteCharFromKeyCode = "R" Case 83: WriteCharFromKeyCode = "S" Case 84: WriteCharFromKeyCode = "T" Case 85: WriteCharFromKeyCode = "U" Case 86: WriteCharFromKeyCode = "V" Case 87: WriteCharFromKeyCode = "W" Case 88: WriteCharFromKeyCode = "X" Case 89: WriteCharFromKeyCode = "Y" Case 90: WriteCharFromKeyCode = "Z" Case 91: WriteCharFromKeyCode = "LWINDOWS" Case 92: WriteCharFromKeyCode = "RWINDOWS" Case 93: WriteCharFromKeyCode = "CONTEXT" Case 94: WriteCharFromKeyCode = "Reserved" Case 95: WriteCharFromKeyCode = "SLEEP" Case 96: WriteCharFromKeyCode = "0" Case 97: WriteCharFromKeyCode = "1" Case 98: WriteCharFromKeyCode = "2" Case 99: WriteCharFromKeyCode = "3" Case 100: WriteCharFromKeyCode = "4" Case 101: WriteCharFromKeyCode = "5" Case 102: WriteCharFromKeyCode = "6" Case 103: WriteCharFromKeyCode = "7" Case 104: WriteCharFromKeyCode = "8" Case 105: WriteCharFromKeyCode = "9" Case 106: WriteCharFromKeyCode = "*" Case 107: WriteCharFromKeyCode = "+" Case 108: WriteCharFromKeyCode = "SEPARATOR" Case 109: WriteCharFromKeyCode = "-" Case 110: WriteCharFromKeyCode = "." Case 111: WriteCharFromKeyCode = "/" Case 112: WriteCharFromKeyCode = "F1" Case 113: WriteCharFromKeyCode = "F2" Case 114: WriteCharFromKeyCode = "F3" Case 115: WriteCharFromKeyCode = "F4" Case 116: WriteCharFromKeyCode = "F5" Case 117: WriteCharFromKeyCode = "F6" Case 118: WriteCharFromKeyCode = "F7" Case 119: WriteCharFromKeyCode = "F8" Case 120: WriteCharFromKeyCode = "F9" Case 121: WriteCharFromKeyCode = "F10" Case 122: WriteCharFromKeyCode = "F11" Case 123: WriteCharFromKeyCode = "F12" Case 124: WriteCharFromKeyCode = "F13" Case 125: WriteCharFromKeyCode = "F14" Case 126: WriteCharFromKeyCode = "F15" Case 127: WriteCharFromKeyCode = "F16" Case 128: WriteCharFromKeyCode = "F17" Case 129: WriteCharFromKeyCode = "F18" Case 130: WriteCharFromKeyCode = "F19" Case 131: WriteCharFromKeyCode = "F20" Case 132: WriteCharFromKeyCode = "F21" Case 133: WriteCharFromKeyCode = "F22" Case 134: WriteCharFromKeyCode = "F23" Case 135: WriteCharFromKeyCode = "F24" Case 136: WriteCharFromKeyCode = "Unassigned" Case 137: WriteCharFromKeyCode = "Unassigned" Case 138: WriteCharFromKeyCode = "Unassigned" Case 139: WriteCharFromKeyCode = "Unassigned" Case 140: WriteCharFromKeyCode = "Unassigned" Case 141: WriteCharFromKeyCode = "Unassigned" Case 142: WriteCharFromKeyCode = "Unassigned" Case 143: WriteCharFromKeyCode = "Unassigned" Case 144: WriteCharFromKeyCode = "NUMLOCK" Case 145: WriteCharFromKeyCode = "SCRLLOCK" Case 146: WriteCharFromKeyCode = "OEM specific" Case 147: WriteCharFromKeyCode = "OEM specific" Case 148: WriteCharFromKeyCode = "OEM specific" Case 149: WriteCharFromKeyCode = "OEM specific" Case 150: WriteCharFromKeyCode = "OEM specific" Case 151: WriteCharFromKeyCode = "Unassigned" Case 152: WriteCharFromKeyCode = "Unassigned" Case 153: WriteCharFromKeyCode = "Unassigned" Case 154: WriteCharFromKeyCode = "Unassigned" Case 155: WriteCharFromKeyCode = "Unassigned" Case 156: WriteCharFromKeyCode = "Unassigned" Case 157: WriteCharFromKeyCode = "Unassigned" Case 158: WriteCharFromKeyCode = "Unassigned" Case 159: WriteCharFromKeyCode = "Unassigned" Case 160: WriteCharFromKeyCode = "LSHIFT" Case 161: WriteCharFromKeyCode = "RSHIFT" Case 162: WriteCharFromKeyCode = "LCTRL" Case 163: WriteCharFromKeyCode = "RCTRL" Case 164: WriteCharFromKeyCode = "LALT" Case 165: WriteCharFromKeyCode = "RALT" Case 166: WriteCharFromKeyCode = "BACK" Case 167: WriteCharFromKeyCode = "FORWARD" Case 168: WriteCharFromKeyCode = "REFRESH" Case 169: WriteCharFromKeyCode = "STOP" Case 170: WriteCharFromKeyCode = "SEARCH" Case 171: WriteCharFromKeyCode = "FAVORITES" Case 172: WriteCharFromKeyCode = "HOME" Case 173: WriteCharFromKeyCode = "MUTE" Case 174: WriteCharFromKeyCode = "VOLDOWN" Case 175: WriteCharFromKeyCode = "VOLUP" Case 176: WriteCharFromKeyCode = "NEXT" Case 177: WriteCharFromKeyCode = "PREV" Case 178: WriteCharFromKeyCode = "STOP" Case 179: WriteCharFromKeyCode = "PLAY" Case 180: WriteCharFromKeyCode = "EMAIL" Case 181: WriteCharFromKeyCode = "MEDIA" Case 182: WriteCharFromKeyCode = "START1" Case 183: WriteCharFromKeyCode = "START2" Case 184: WriteCharFromKeyCode = "Reserved" Case 185: WriteCharFromKeyCode = "Reserved" Case 186: WriteCharFromKeyCode = ";" Case 187: WriteCharFromKeyCode = "=" Case 188: WriteCharFromKeyCode = "," Case 189: WriteCharFromKeyCode = "-" Case 190: WriteCharFromKeyCode = "." Case 191: WriteCharFromKeyCode = "/" Case 192: WriteCharFromKeyCode = "`" Case 193: WriteCharFromKeyCode = "Reserved" Case 194: WriteCharFromKeyCode = "Reserved" Case 195: WriteCharFromKeyCode = "Reserved" Case 196: WriteCharFromKeyCode = "Reserved" Case 197: WriteCharFromKeyCode = "Reserved" Case 198: WriteCharFromKeyCode = "Reserved" Case 199: WriteCharFromKeyCode = "Reserved" Case 200: WriteCharFromKeyCode = "Reserved" Case 201: WriteCharFromKeyCode = "Reserved" Case 202: WriteCharFromKeyCode = "Reserved" Case 203: WriteCharFromKeyCode = "Reserved" Case 204: WriteCharFromKeyCode = "Reserved" Case 205: WriteCharFromKeyCode = "Reserved" Case 206: WriteCharFromKeyCode = "Reserved" Case 207: WriteCharFromKeyCode = "Reserved" Case 208: WriteCharFromKeyCode = "Reserved" Case 209: WriteCharFromKeyCode = "Reserved" Case 210: WriteCharFromKeyCode = "Reserved" Case 211: WriteCharFromKeyCode = "Reserved" Case 212: WriteCharFromKeyCode = "Reserved" Case 213: WriteCharFromKeyCode = "Reserved" Case 214: WriteCharFromKeyCode = "Reserved" Case 215: WriteCharFromKeyCode = "Reserved" Case 216: WriteCharFromKeyCode = "Unassigned" Case 217: WriteCharFromKeyCode = "Unassigned" Case 218: WriteCharFromKeyCode = "Unassigned" Case 219: WriteCharFromKeyCode = "[" Case 220: WriteCharFromKeyCode = "\" Case 221: WriteCharFromKeyCode = "]" Case 222: WriteCharFromKeyCode = "'" Case 223: WriteCharFromKeyCode = "MISC" Case 224: WriteCharFromKeyCode = "Reserved" Case 225: WriteCharFromKeyCode = "OEM" Case 226: WriteCharFromKeyCode = "OEM ANG" Case 227: WriteCharFromKeyCode = "OEM" Case 228: WriteCharFromKeyCode = "OEM" Case 229: WriteCharFromKeyCode = "PROCESS" Case 230: WriteCharFromKeyCode = "OEM" Case 231: WriteCharFromKeyCode = "UNICODE" Case 232: WriteCharFromKeyCode = "Unassigned" Case 233: WriteCharFromKeyCode = "OEM specific" Case 234: WriteCharFromKeyCode = "OEM specific" Case 235: WriteCharFromKeyCode = "OEM specific" Case 236: WriteCharFromKeyCode = "OEM specific" Case 237: WriteCharFromKeyCode = "OEM specific" Case 238: WriteCharFromKeyCode = "OEM specific" Case 239: WriteCharFromKeyCode = "OEM specific" Case 240: WriteCharFromKeyCode = "OEM specific" Case 241: WriteCharFromKeyCode = "OEM specific" Case 242: WriteCharFromKeyCode = "OEM specific" Case 243: WriteCharFromKeyCode = "OEM specific" Case 244: WriteCharFromKeyCode = "OEM specific" Case 245: WriteCharFromKeyCode = "OEM specific" Case 246: WriteCharFromKeyCode = "ATTN" Case 247: WriteCharFromKeyCode = "CRSEL" Case 248: WriteCharFromKeyCode = "EXSEL" Case 249: WriteCharFromKeyCode = "ERASE EOF" Case 250: WriteCharFromKeyCode = "PLAY" Case 251: WriteCharFromKeyCode = "ZOOM" Case 252: WriteCharFromKeyCode = "Reserved" Case 253: WriteCharFromKeyCode = "PA1" Case 254: WriteCharFromKeyCode = "CLEAR" Case 255: WriteCharFromKeyCode = "MISC" Case Else: WriteCharFromKeyCode = "UNKNOWN" End Select End If End Function '4.) WriteCharFromKeyAscii() is a function that will take 'a keyascii value and will output it's respective character. 'It only takes one argument, the keyascii value (as an integer). 'This function will then return the corresponding character. 'In my opinion, this is much better than the built in Chr() function 'for two reasons. One is that for the non-printable and extended ASCII 'set Chr() will output garbage, whereas this function will output a useful 'text string. The second reason I like it better is because Chr() will crash 'if you pass it a number large than 255. With this function, if you pass 'it a number larger than 255 it will just return "N/A" Public Function WriteCharFromKeyAscii(KeyAscii As Integer) As String Select Case KeyAscii Case 0: WriteCharFromKeyAscii = "NULL" Case 1: WriteCharFromKeyAscii = "SOH" Case 2: WriteCharFromKeyAscii = "STX" Case 3: WriteCharFromKeyAscii = "ETX" Case 4: WriteCharFromKeyAscii = "EOT" Case 5: WriteCharFromKeyAscii = "ENQ" Case 6: WriteCharFromKeyAscii = "ACK" Case 7: WriteCharFromKeyAscii = "BEL" Case 8: WriteCharFromKeyAscii = "BACKSPACE" Case 9: WriteCharFromKeyAscii = "TAB" Case 10: WriteCharFromKeyAscii = "LF" Case 11: WriteCharFromKeyAscii = "VT" Case 12: WriteCharFromKeyAscii = "FF" Case 13: WriteCharFromKeyAscii = "RETURN" Case 14: WriteCharFromKeyAscii = "SO" Case 15: WriteCharFromKeyAscii = "SI" Case 16: WriteCharFromKeyAscii = "DLE" Case 17: WriteCharFromKeyAscii = "DC1" Case 18: WriteCharFromKeyAscii = "DC2" Case 19: WriteCharFromKeyAscii = "DC3" Case 20: WriteCharFromKeyAscii = "DC4" Case 21: WriteCharFromKeyAscii = "NAK" Case 22: WriteCharFromKeyAscii = "SYN" Case 23: WriteCharFromKeyAscii = "ETB" Case 24: WriteCharFromKeyAscii = "CANCEL" Case 25: WriteCharFromKeyAscii = "EM" Case 26: WriteCharFromKeyAscii = "SUB" Case 27: WriteCharFromKeyAscii = "ESC" Case 28: WriteCharFromKeyAscii = "FS" Case 29: WriteCharFromKeyAscii = "GS" Case 30: WriteCharFromKeyAscii = "RS" Case 31: WriteCharFromKeyAscii = "US" Case 32: WriteCharFromKeyAscii = "SPACE" Case 33: WriteCharFromKeyAscii = "!" Case 34: WriteCharFromKeyAscii = """" Case 35: WriteCharFromKeyAscii = "#" Case 36: WriteCharFromKeyAscii = "$" Case 37: WriteCharFromKeyAscii = "%" Case 38: WriteCharFromKeyAscii = "&" Case 39: WriteCharFromKeyAscii = "'" Case 40: WriteCharFromKeyAscii = "(" Case 41: WriteCharFromKeyAscii = ")" Case 42: WriteCharFromKeyAscii = "*" Case 43: WriteCharFromKeyAscii = "+" Case 44: WriteCharFromKeyAscii = "," Case 45: WriteCharFromKeyAscii = "-" Case 46: WriteCharFromKeyAscii = "." Case 47: WriteCharFromKeyAscii = "/" Case 48: WriteCharFromKeyAscii = "0" Case 49: WriteCharFromKeyAscii = "1" Case 50: WriteCharFromKeyAscii = "2" Case 51: WriteCharFromKeyAscii = "3" Case 52: WriteCharFromKeyAscii = "4" Case 53: WriteCharFromKeyAscii = "5" Case 54: WriteCharFromKeyAscii = "6" Case 55: WriteCharFromKeyAscii = "7" Case 56: WriteCharFromKeyAscii = "8" Case 57: WriteCharFromKeyAscii = "9" Case 58: WriteCharFromKeyAscii = ":" Case 59: WriteCharFromKeyAscii = ";" Case 60: WriteCharFromKeyAscii = "<" Case 61: WriteCharFromKeyAscii = "=" Case 62: WriteCharFromKeyAscii = ">" Case 63: WriteCharFromKeyAscii = "?" Case 64: WriteCharFromKeyAscii = "@" Case 65: WriteCharFromKeyAscii = "A" Case 66: WriteCharFromKeyAscii = "B" Case 67: WriteCharFromKeyAscii = "C" Case 68: WriteCharFromKeyAscii = "D" Case 69: WriteCharFromKeyAscii = "E" Case 70: WriteCharFromKeyAscii = "F" Case 71: WriteCharFromKeyAscii = "G" Case 72: WriteCharFromKeyAscii = "H" Case 73: WriteCharFromKeyAscii = "I" Case 74: WriteCharFromKeyAscii = "J" Case 75: WriteCharFromKeyAscii = "K" Case 76: WriteCharFromKeyAscii = "L" Case 77: WriteCharFromKeyAscii = "M" Case 78: WriteCharFromKeyAscii = "N" Case 79: WriteCharFromKeyAscii = "O" Case 80: WriteCharFromKeyAscii = "P" Case 81: WriteCharFromKeyAscii = "Q" Case 82: WriteCharFromKeyAscii = "R" Case 83: WriteCharFromKeyAscii = "S" Case 84: WriteCharFromKeyAscii = "T" Case 85: WriteCharFromKeyAscii = "U" Case 86: WriteCharFromKeyAscii = "V" Case 87: WriteCharFromKeyAscii = "W" Case 88: WriteCharFromKeyAscii = "X" Case 89: WriteCharFromKeyAscii = "Y" Case 90: WriteCharFromKeyAscii = "Z" Case 91: WriteCharFromKeyAscii = "[" Case 92: WriteCharFromKeyAscii = "\" Case 93: WriteCharFromKeyAscii = "]" Case 94: WriteCharFromKeyAscii = "^" Case 95: WriteCharFromKeyAscii = "_" Case 96: WriteCharFromKeyAscii = "`" Case 97: WriteCharFromKeyAscii = "a" Case 98: WriteCharFromKeyAscii = "b" Case 99: WriteCharFromKeyAscii = "c" Case 100: WriteCharFromKeyAscii = "d" Case 101: WriteCharFromKeyAscii = "e" Case 102: WriteCharFromKeyAscii = "f" Case 103: WriteCharFromKeyAscii = "g" Case 104: WriteCharFromKeyAscii = "h" Case 105: WriteCharFromKeyAscii = "i" Case 106: WriteCharFromKeyAscii = "j" Case 107: WriteCharFromKeyAscii = "k" Case 108: WriteCharFromKeyAscii = "l" Case 109: WriteCharFromKeyAscii = "m" Case 110: WriteCharFromKeyAscii = "n" Case 111: WriteCharFromKeyAscii = "o" Case 112: WriteCharFromKeyAscii = "p" Case 113: WriteCharFromKeyAscii = "q" Case 114: WriteCharFromKeyAscii = "r" Case 115: WriteCharFromKeyAscii = "s" Case 116: WriteCharFromKeyAscii = "t" Case 117: WriteCharFromKeyAscii = "u" Case 118: WriteCharFromKeyAscii = "v" Case 119: WriteCharFromKeyAscii = "w" Case 120: WriteCharFromKeyAscii = "x" Case 121: WriteCharFromKeyAscii = "y" Case 122: WriteCharFromKeyAscii = "z" Case 123: WriteCharFromKeyAscii = "{" Case 124: WriteCharFromKeyAscii = "|" Case 125: WriteCharFromKeyAscii = "}" Case 126: WriteCharFromKeyAscii = "~" Case 127: WriteCharFromKeyAscii = "DELETE" Case 128: WriteCharFromKeyAscii = "€" Case 129: WriteCharFromKeyAscii = "" Case 130: WriteCharFromKeyAscii = "" Case 131: WriteCharFromKeyAscii = "" Case 132: WriteCharFromKeyAscii = "" Case 133: WriteCharFromKeyAscii = "" Case 134: WriteCharFromKeyAscii = "" Case 135: WriteCharFromKeyAscii = "" Case 136: WriteCharFromKeyAscii = "" Case 137: WriteCharFromKeyAscii = "" Case 138: WriteCharFromKeyAscii = "" Case 139: WriteCharFromKeyAscii = "" Case 140: WriteCharFromKeyAscii = "" Case 141: WriteCharFromKeyAscii = "" Case 142: WriteCharFromKeyAscii = "" Case 143: WriteCharFromKeyAscii = "" Case 144: WriteCharFromKeyAscii = "" Case 145: WriteCharFromKeyAscii = "" Case 146: WriteCharFromKeyAscii = "" Case 147: WriteCharFromKeyAscii = "" Case 148: WriteCharFromKeyAscii = "" Case 149: WriteCharFromKeyAscii = "" Case 150: WriteCharFromKeyAscii = "" Case 151: WriteCharFromKeyAscii = "" Case 152: WriteCharFromKeyAscii = "" Case 153: WriteCharFromKeyAscii = "" Case 154: WriteCharFromKeyAscii = "" Case 155: WriteCharFromKeyAscii = "" Case 156: WriteCharFromKeyAscii = "" Case 157: WriteCharFromKeyAscii = "" Case 158: WriteCharFromKeyAscii = "" Case 159: WriteCharFromKeyAscii = "" Case 160: WriteCharFromKeyAscii = "" Case 161: WriteCharFromKeyAscii = "" Case 162: WriteCharFromKeyAscii = "" Case 163: WriteCharFromKeyAscii = "£" Case 164: WriteCharFromKeyAscii = "" Case 165: WriteCharFromKeyAscii = "¥" Case 166: WriteCharFromKeyAscii = "" Case 167: WriteCharFromKeyAscii = "" Case 168: WriteCharFromKeyAscii = "" Case 169: WriteCharFromKeyAscii = "" Case 170: WriteCharFromKeyAscii = "" Case 171: WriteCharFromKeyAscii = "" Case 172: WriteCharFromKeyAscii = "" Case 173: WriteCharFromKeyAscii = "" Case 174: WriteCharFromKeyAscii = "" Case 175: WriteCharFromKeyAscii = "" Case 176: WriteCharFromKeyAscii = "" Case 177: WriteCharFromKeyAscii = "" Case 178: WriteCharFromKeyAscii = "" Case 179: WriteCharFromKeyAscii = "" Case 180: WriteCharFromKeyAscii = "" Case 181: WriteCharFromKeyAscii = "" Case 182: WriteCharFromKeyAscii = "" Case 183: WriteCharFromKeyAscii = "" Case 184: WriteCharFromKeyAscii = "" Case 185: WriteCharFromKeyAscii = "" Case 186: WriteCharFromKeyAscii = "" Case 187: WriteCharFromKeyAscii = "" Case 188: WriteCharFromKeyAscii = "" Case 189: WriteCharFromKeyAscii = "" Case 190: WriteCharFromKeyAscii = "" Case 191: WriteCharFromKeyAscii = "" Case 192: WriteCharFromKeyAscii = "" Case 193: WriteCharFromKeyAscii = "" Case 194: WriteCharFromKeyAscii = "" Case 195: WriteCharFromKeyAscii = "" Case 196: WriteCharFromKeyAscii = "" Case 197: WriteCharFromKeyAscii = "" Case 198: WriteCharFromKeyAscii = "" Case 199: WriteCharFromKeyAscii = "" Case 200: WriteCharFromKeyAscii = "" Case 201: WriteCharFromKeyAscii = "" Case 202: WriteCharFromKeyAscii = "" Case 203: WriteCharFromKeyAscii = "" Case 204: WriteCharFromKeyAscii = "" Case 205: WriteCharFromKeyAscii = "" Case 206: WriteCharFromKeyAscii = "" Case 207: WriteCharFromKeyAscii = "" Case 208: WriteCharFromKeyAscii = "" Case 209: WriteCharFromKeyAscii = "" Case 210: WriteCharFromKeyAscii = "" Case 211: WriteCharFromKeyAscii = "" Case 212: WriteCharFromKeyAscii = "" Case 213: WriteCharFromKeyAscii = "" Case 214: WriteCharFromKeyAscii = "" Case 215: WriteCharFromKeyAscii = "" Case 216: WriteCharFromKeyAscii = "" Case 217: WriteCharFromKeyAscii = "" Case 218: WriteCharFromKeyAscii = "" Case 219: WriteCharFromKeyAscii = "" Case 220: WriteCharFromKeyAscii = "" Case 221: WriteCharFromKeyAscii = "" Case 222: WriteCharFromKeyAscii = "" Case 223: WriteCharFromKeyAscii = "" Case 224: WriteCharFromKeyAscii = "" Case 225: WriteCharFromKeyAscii = "" Case 226: WriteCharFromKeyAscii = "" Case 227: WriteCharFromKeyAscii = "" Case 228: WriteCharFromKeyAscii = "" Case 229: WriteCharFromKeyAscii = "" Case 230: WriteCharFromKeyAscii = "" Case 231: WriteCharFromKeyAscii = "" Case 232: WriteCharFromKeyAscii = "" Case 233: WriteCharFromKeyAscii = "" Case 234: WriteCharFromKeyAscii = "" Case 235: WriteCharFromKeyAscii = "" Case 236: WriteCharFromKeyAscii = "" Case 237: WriteCharFromKeyAscii = "" Case 238: WriteCharFromKeyAscii = "" Case 239: WriteCharFromKeyAscii = "" Case 240: WriteCharFromKeyAscii = "" Case 241: WriteCharFromKeyAscii = "" Case 242: WriteCharFromKeyAscii = "" Case 243: WriteCharFromKeyAscii = "" Case 244: WriteCharFromKeyAscii = "" Case 245: WriteCharFromKeyAscii = "" Case 246: WriteCharFromKeyAscii = "" Case 247: WriteCharFromKeyAscii = "" Case 248: WriteCharFromKeyAscii = "" Case 249: WriteCharFromKeyAscii = "" Case 250: WriteCharFromKeyAscii = "" Case 251: WriteCharFromKeyAscii = "" Case 252: WriteCharFromKeyAscii = "" Case 253: WriteCharFromKeyAscii = "" Case 254: WriteCharFromKeyAscii = "" Case 255: WriteCharFromKeyAscii = "" Case Else: WriteCharFromKeyAscii = "N/A" End Select End Function '5.) WriteKeyAsciiFromKeyCode() is a function that will take 'a keycode value and will output it's equivalent keyascii value. 'It takes two arguments, one is the keycode number itself and the 'other is a boolean value called shiftdown. If the SHIFT key is being 'held down you would say true, and if it's not you would say false. 'It will return "N/A" if there is no equivalent KeyAscii value. Public Function WriteKeyAsciiFromKeyCode(KeyCode As Integer, shiftdown As Boolean) As String If shiftdown = True Then 'shift is down Select Case KeyCode Case 8: WriteKeyAsciiFromKeyCode = "8" Case 9: WriteKeyAsciiFromKeyCode = "9" Case 10: WriteKeyAsciiFromKeyCode = "10" Case 13: WriteKeyAsciiFromKeyCode = "13" Case 27: WriteKeyAsciiFromKeyCode = "27" Case 32: WriteKeyAsciiFromKeyCode = "32" 'Case 46: WriteKeyAsciiFromKeyCode = "127" 'these are really not the same Case 48: WriteKeyAsciiFromKeyCode = "41" 'shift relavent 0/) 48/41 Case 49: WriteKeyAsciiFromKeyCode = "33" 'shift relavent 1/! 49/33 Case 50: WriteKeyAsciiFromKeyCode = "64" 'shift relavent 2/@ 50/64 Case 51: WriteKeyAsciiFromKeyCode = "35" 'shift relavent 3/# 51/35 Case 52: WriteKeyAsciiFromKeyCode = "36" 'shift relavent 4/$ 52/36 Case 53: WriteKeyAsciiFromKeyCode = "37" 'shift relavent 5/% 53/37 Case 54: WriteKeyAsciiFromKeyCode = "94" 'shift relavent 6/^ 54/94 Case 55: WriteKeyAsciiFromKeyCode = "38" 'shift relavent 7/& 55/38 Case 56: WriteKeyAsciiFromKeyCode = "42" 'shift relavent 8/* 56/42 Case 57: WriteKeyAsciiFromKeyCode = "40" 'shift relavent 9/( 57/40 Case 65: WriteKeyAsciiFromKeyCode = "65" 'shift relavent a/A 97/65 Case 66: WriteKeyAsciiFromKeyCode = "66" 'shift relavent b/B 98/66 Case 67: WriteKeyAsciiFromKeyCode = "67" 'shift relavent c/C 99/67 Case 68: WriteKeyAsciiFromKeyCode = "68" 'shift relavent d/D 100/68 Case 69: WriteKeyAsciiFromKeyCode = "69" 'shift relavent e/E 101/69 Case 70: WriteKeyAsciiFromKeyCode = "70" 'shift relavent f/F 102/70 Case 71: WriteKeyAsciiFromKeyCode = "71" 'shift relavent g/G 103/71 Case 72: WriteKeyAsciiFromKeyCode = "72" 'shift relavent h/H 104/72 Case 73: WriteKeyAsciiFromKeyCode = "73" 'shift relavent i/I 105/73 Case 74: WriteKeyAsciiFromKeyCode = "74" 'shift relavent j/J 106/74 Case 75: WriteKeyAsciiFromKeyCode = "75" 'shift relavent k/K 107/75 Case 76: WriteKeyAsciiFromKeyCode = "76" 'shift relavent l/L 108/76 Case 77: WriteKeyAsciiFromKeyCode = "77" 'shift relavent m/M 109/77 Case 78: WriteKeyAsciiFromKeyCode = "78" 'shift relavent n/N 110/78 Case 79: WriteKeyAsciiFromKeyCode = "79" 'shift relavent o/O 111/79 Case 80: WriteKeyAsciiFromKeyCode = "80" 'shift relavent p/P 112/80 Case 81: WriteKeyAsciiFromKeyCode = "81" 'shift relavent q/Q 113/81 Case 82: WriteKeyAsciiFromKeyCode = "82" 'shift relavent r/R 114/82 Case 83: WriteKeyAsciiFromKeyCode = "83" 'shift relavent s/S 115/83 Case 84: WriteKeyAsciiFromKeyCode = "84" 'shift relavent t/T 116/84 Case 85: WriteKeyAsciiFromKeyCode = "85" 'shift relavent u/U 117/85 Case 86: WriteKeyAsciiFromKeyCode = "86" 'shift relavent v/V 118/86 Case 87: WriteKeyAsciiFromKeyCode = "87" 'shift relavent w/W 119/87 Case 88: WriteKeyAsciiFromKeyCode = "88" 'shift relavent x/X 120/88 Case 89: WriteKeyAsciiFromKeyCode = "89" 'shift relavent y/Y 121/89 Case 90: WriteKeyAsciiFromKeyCode = "90" 'shift relavent z/Z 122/90 Case 96: WriteKeyAsciiFromKeyCode = "48" '0 on number pad Case 97: WriteKeyAsciiFromKeyCode = "49" '1 on number pad Case 98: WriteKeyAsciiFromKeyCode = "50" '2 on number pad Case 99: WriteKeyAsciiFromKeyCode = "51" '3 on number pad Case 100: WriteKeyAsciiFromKeyCode = "52" '4 on number pad Case 101: WriteKeyAsciiFromKeyCode = "53" '5 on number pad Case 102: WriteKeyAsciiFromKeyCode = "54" '6 on number pad Case 103: WriteKeyAsciiFromKeyCode = "55" '7 on number pad Case 104: WriteKeyAsciiFromKeyCode = "56" '8 on number pad Case 105: WriteKeyAsciiFromKeyCode = "57" '9 on number pad Case 106: WriteKeyAsciiFromKeyCode = "42" '* on number pad Case 107: WriteKeyAsciiFromKeyCode = "43" '+ on number pad Case 109: WriteKeyAsciiFromKeyCode = "45" '- on number pad Case 110: WriteKeyAsciiFromKeyCode = "46" '. on number pad Case 111: WriteKeyAsciiFromKeyCode = "47" '/ on number pad Case 186: WriteKeyAsciiFromKeyCode = "58" 'shift relavent ;/: 59/58 Case 187: WriteKeyAsciiFromKeyCode = "43" 'shift relavent =/+ 61/43 Case 188: WriteKeyAsciiFromKeyCode = "60" 'shift relavent ,/< 44/60 Case 189: WriteKeyAsciiFromKeyCode = "95" 'shift relavent -/_ 45/95 Case 190: WriteKeyAsciiFromKeyCode = "62" 'shift relavent ./> 46/62 Case 191: WriteKeyAsciiFromKeyCode = "63" 'shift relavent //? 47/63 Case 192: WriteKeyAsciiFromKeyCode = "126" 'shift relavent `/~ 96/126 Case 219: WriteKeyAsciiFromKeyCode = "123" 'shift relavent [/{ 91/123 Case 220: WriteKeyAsciiFromKeyCode = "124" 'shift relavent \/| 92/124 Case 221: WriteKeyAsciiFromKeyCode = "125" 'shift relavent ]/} 93/125 Case 222: WriteKeyAsciiFromKeyCode = "34" 'shift relavent '/" 39/34 Case Else: WriteKeyAsciiFromKeyCode = "N/A" End Select Else 'shift is not down Select Case KeyCode Case 8: WriteKeyAsciiFromKeyCode = "8" Case 9: WriteKeyAsciiFromKeyCode = "9" Case 10: WriteKeyAsciiFromKeyCode = "10" Case 13: WriteKeyAsciiFromKeyCode = "13" Case 27: WriteKeyAsciiFromKeyCode = "27" Case 32: WriteKeyAsciiFromKeyCode = "32" 'Case 46: WriteKeyAsciiFromKeyCode = "127" 'these are really not the same Case 48: WriteKeyAsciiFromKeyCode = "48" 'shift relavent 0/) 48/41 Case 49: WriteKeyAsciiFromKeyCode = "49" 'shift relavent 1/! 49/33 Case 50: WriteKeyAsciiFromKeyCode = "50" 'shift relavent 2/@ 50/64 Case 51: WriteKeyAsciiFromKeyCode = "51" 'shift relavent 3/# 51/35 Case 52: WriteKeyAsciiFromKeyCode = "52" 'shift relavent 4/$ 52/36 Case 53: WriteKeyAsciiFromKeyCode = "53" 'shift relavent 5/% 53/37 Case 54: WriteKeyAsciiFromKeyCode = "54" 'shift relavent 6/^ 54/94 Case 55: WriteKeyAsciiFromKeyCode = "55" 'shift relavent 7/& 55/38 Case 56: WriteKeyAsciiFromKeyCode = "56" 'shift relavent 8/* 56/42 Case 57: WriteKeyAsciiFromKeyCode = "57" 'shift relavent 9/( 57/40 Case 65: WriteKeyAsciiFromKeyCode = "97" 'shift relavent a/A 97/65 Case 66: WriteKeyAsciiFromKeyCode = "98" 'shift relavent b/B 98/66 Case 67: WriteKeyAsciiFromKeyCode = "99" 'shift relavent c/C 99/67 Case 68: WriteKeyAsciiFromKeyCode = "100" 'shift relavent d/D 100/68 Case 69: WriteKeyAsciiFromKeyCode = "101" 'shift relavent e/E 101/69 Case 70: WriteKeyAsciiFromKeyCode = "102" 'shift relavent f/F 102/70 Case 71: WriteKeyAsciiFromKeyCode = "103" 'shift relavent g/G 103/71 Case 72: WriteKeyAsciiFromKeyCode = "104" 'shift relavent h/H 104/72 Case 73: WriteKeyAsciiFromKeyCode = "105" 'shift relavent i/I 105/73 Case 74: WriteKeyAsciiFromKeyCode = "106" 'shift relavent j/J 106/74 Case 75: WriteKeyAsciiFromKeyCode = "107" 'shift relavent k/K 107/75 Case 76: WriteKeyAsciiFromKeyCode = "108" 'shift relavent l/L 108/76 Case 77: WriteKeyAsciiFromKeyCode = "109" 'shift relavent m/M 109/77 Case 78: WriteKeyAsciiFromKeyCode = "110" 'shift relavent n/N 110/78 Case 79: WriteKeyAsciiFromKeyCode = "111" 'shift relavent o/O 111/79 Case 80: WriteKeyAsciiFromKeyCode = "112" 'shift relavent p/P 112/80 Case 81: WriteKeyAsciiFromKeyCode = "113" 'shift relavent q/Q 113/81 Case 82: WriteKeyAsciiFromKeyCode = "114" 'shift relavent r/R 114/82 Case 83: WriteKeyAsciiFromKeyCode = "115" 'shift relavent s/S 115/83 Case 84: WriteKeyAsciiFromKeyCode = "116" 'shift relavent t/T 116/84 Case 85: WriteKeyAsciiFromKeyCode = "117" 'shift relavent u/U 117/85 Case 86: WriteKeyAsciiFromKeyCode = "118" 'shift relavent v/V 118/86 Case 87: WriteKeyAsciiFromKeyCode = "119" 'shift relavent w/W 119/87 Case 88: WriteKeyAsciiFromKeyCode = "120" 'shift relavent x/X 120/88 Case 89: WriteKeyAsciiFromKeyCode = "121" 'shift relavent y/Y 121/89 Case 90: WriteKeyAsciiFromKeyCode = "122" 'shift relavent z/Z 122/90 Case 96: WriteKeyAsciiFromKeyCode = "48" '0 on number pad Case 97: WriteKeyAsciiFromKeyCode = "49" '1 on number pad Case 98: WriteKeyAsciiFromKeyCode = "50" '2 on number pad Case 99: WriteKeyAsciiFromKeyCode = "51" '3 on number pad Case 100: WriteKeyAsciiFromKeyCode = "52" '4 on number pad Case 101: WriteKeyAsciiFromKeyCode = "53" '5 on number pad Case 102: WriteKeyAsciiFromKeyCode = "54" '6 on number pad Case 103: WriteKeyAsciiFromKeyCode = "55" '7 on number pad Case 104: WriteKeyAsciiFromKeyCode = "56" '8 on number pad Case 105: WriteKeyAsciiFromKeyCode = "57" '9 on number pad Case 106: WriteKeyAsciiFromKeyCode = "42" '* on number pad Case 107: WriteKeyAsciiFromKeyCode = "43" '+ on number pad Case 109: WriteKeyAsciiFromKeyCode = "45" '- on number pad Case 110: WriteKeyAsciiFromKeyCode = "46" '. on number pad Case 111: WriteKeyAsciiFromKeyCode = "47" '/ on number pad Case 186: WriteKeyAsciiFromKeyCode = "59" 'shift relavent ;/: 59/58 Case 187: WriteKeyAsciiFromKeyCode = "61" 'shift relavent =/+ 61/43 Case 188: WriteKeyAsciiFromKeyCode = "44" 'shift relavent ,/< 44/60 Case 189: WriteKeyAsciiFromKeyCode = "45" 'shift relavent -/_ 45/95 Case 190: WriteKeyAsciiFromKeyCode = "46" 'shift relavent ./> 46/62 Case 191: WriteKeyAsciiFromKeyCode = "47" 'shift relavent //? 47/63 Case 192: WriteKeyAsciiFromKeyCode = "96" 'shift relavent `/~ 96/126 Case 219: WriteKeyAsciiFromKeyCode = "91" 'shift relavent [/{ 91/123 Case 220: WriteKeyAsciiFromKeyCode = "92" 'shift relavent \/| 92/124 Case 221: WriteKeyAsciiFromKeyCode = "93" 'shift relavent ]/} 93/125 Case 222: WriteKeyAsciiFromKeyCode = "39" 'shift relavent '/" 39/34 Case Else: WriteKeyAsciiFromKeyCode = "N/A" End Select End If End Function '6.) WriteKeyCodeFromKeyAscii() is a function that will take 'a KeyAscii value and will output it's equivalent KeyCode value. 'It only takes one argument which is the KeyAscii value as an integer. 'It will return "N/A" if there is no equivalent KeyCode value. Public Function WriteKeyCodeFromKeyAscii(KeyAscii As Integer) As String Select Case KeyAscii Case 8: WriteKeyCodeFromKeyAscii = "8" Case 9: WriteKeyCodeFromKeyAscii = "9" Case 10: WriteKeyCodeFromKeyAscii = "10" Case 13: WriteKeyCodeFromKeyAscii = "13" Case 27: WriteKeyCodeFromKeyAscii = "27" Case 32: WriteKeyCodeFromKeyAscii = "32" Case 33: WriteKeyCodeFromKeyAscii = "49" Case 34: WriteKeyCodeFromKeyAscii = "222" Case 35: WriteKeyCodeFromKeyAscii = "51" Case 36: WriteKeyCodeFromKeyAscii = "52" Case 37: WriteKeyCodeFromKeyAscii = "53" Case 38: WriteKeyCodeFromKeyAscii = "55" Case 39: WriteKeyCodeFromKeyAscii = "222" Case 40: WriteKeyCodeFromKeyAscii = "57" Case 41: WriteKeyCodeFromKeyAscii = "48" Case 42: WriteKeyCodeFromKeyAscii = "56" '* could be 106 on number-pad Case 43: WriteKeyCodeFromKeyAscii = "187" '+ could be 107 on number-pad Case 44: WriteKeyCodeFromKeyAscii = "188" Case 45: WriteKeyCodeFromKeyAscii = "189" Case 46: WriteKeyCodeFromKeyAscii = "190" '. could be 110 on number-pad Case 47: WriteKeyCodeFromKeyAscii = "191" '/ could be 111 on number-pad Case 48: WriteKeyCodeFromKeyAscii = "48" '0 could be 96 on number-pad Case 49: WriteKeyCodeFromKeyAscii = "49" '1 could be 97 on number-pad Case 50: WriteKeyCodeFromKeyAscii = "50" '2 could be 98 on number-pad Case 51: WriteKeyCodeFromKeyAscii = "51" '3 could be 99 on number-pad Case 52: WriteKeyCodeFromKeyAscii = "52" '4 could be 100 on number-pad Case 53: WriteKeyCodeFromKeyAscii = "53" '5 could be 101 on number-pad Case 54: WriteKeyCodeFromKeyAscii = "54" '6 could be 102 on number-pad Case 55: WriteKeyCodeFromKeyAscii = "55" '7 could be 103 on number-pad Case 56: WriteKeyCodeFromKeyAscii = "56" '8 could be 104 on number-pad Case 57: WriteKeyCodeFromKeyAscii = "57" '9 could be 105 on number-pad Case 58: WriteKeyCodeFromKeyAscii = "186" Case 59: WriteKeyCodeFromKeyAscii = "186" Case 60: WriteKeyCodeFromKeyAscii = "188" Case 61: WriteKeyCodeFromKeyAscii = "187" Case 62: WriteKeyCodeFromKeyAscii = "190" Case 63: WriteKeyCodeFromKeyAscii = "191" Case 64: WriteKeyCodeFromKeyAscii = "50" Case 65: WriteKeyCodeFromKeyAscii = "65" Case 66: WriteKeyCodeFromKeyAscii = "66" Case 67: WriteKeyCodeFromKeyAscii = "67" Case 68: WriteKeyCodeFromKeyAscii = "68" Case 69: WriteKeyCodeFromKeyAscii = "69" Case 70: WriteKeyCodeFromKeyAscii = "70" Case 71: WriteKeyCodeFromKeyAscii = "71" Case 72: WriteKeyCodeFromKeyAscii = "72" Case 73: WriteKeyCodeFromKeyAscii = "73" Case 74: WriteKeyCodeFromKeyAscii = "74" Case 75: WriteKeyCodeFromKeyAscii = "75" Case 76: WriteKeyCodeFromKeyAscii = "76" Case 77: WriteKeyCodeFromKeyAscii = "77" Case 78: WriteKeyCodeFromKeyAscii = "78" Case 79: WriteKeyCodeFromKeyAscii = "79" Case 80: WriteKeyCodeFromKeyAscii = "80" Case 81: WriteKeyCodeFromKeyAscii = "81" Case 82: WriteKeyCodeFromKeyAscii = "82" Case 83: WriteKeyCodeFromKeyAscii = "83" Case 84: WriteKeyCodeFromKeyAscii = "84" Case 85: WriteKeyCodeFromKeyAscii = "85" Case 86: WriteKeyCodeFromKeyAscii = "86" Case 87: WriteKeyCodeFromKeyAscii = "87" Case 88: WriteKeyCodeFromKeyAscii = "88" Case 89: WriteKeyCodeFromKeyAscii = "89" Case 90: WriteKeyCodeFromKeyAscii = "90" Case 91: WriteKeyCodeFromKeyAscii = "219" Case 92: WriteKeyCodeFromKeyAscii = "220" Case 93: WriteKeyCodeFromKeyAscii = "221" Case 94: WriteKeyCodeFromKeyAscii = "54" Case 95: WriteKeyCodeFromKeyAscii = "189" Case 96: WriteKeyCodeFromKeyAscii = "192" Case 97: WriteKeyCodeFromKeyAscii = "65" Case 98: WriteKeyCodeFromKeyAscii = "66" Case 99: WriteKeyCodeFromKeyAscii = "67" Case 100: WriteKeyCodeFromKeyAscii = "68" Case 101: WriteKeyCodeFromKeyAscii = "69" Case 102: WriteKeyCodeFromKeyAscii = "70" Case 103: WriteKeyCodeFromKeyAscii = "71" Case 104: WriteKeyCodeFromKeyAscii = "72" Case 105: WriteKeyCodeFromKeyAscii = "73" Case 106: WriteKeyCodeFromKeyAscii = "74" Case 107: WriteKeyCodeFromKeyAscii = "75" Case 108: WriteKeyCodeFromKeyAscii = "76" Case 109: WriteKeyCodeFromKeyAscii = "77" Case 110: WriteKeyCodeFromKeyAscii = "78" Case 111: WriteKeyCodeFromKeyAscii = "79" Case 112: WriteKeyCodeFromKeyAscii = "80" Case 113: WriteKeyCodeFromKeyAscii = "81" Case 114: WriteKeyCodeFromKeyAscii = "82" Case 115: WriteKeyCodeFromKeyAscii = "83" Case 116: WriteKeyCodeFromKeyAscii = "84" Case 117: WriteKeyCodeFromKeyAscii = "85" Case 118: WriteKeyCodeFromKeyAscii = "86" Case 119: WriteKeyCodeFromKeyAscii = "87" Case 120: WriteKeyCodeFromKeyAscii = "88" Case 121: WriteKeyCodeFromKeyAscii = "89" Case 122: WriteKeyCodeFromKeyAscii = "90" Case 123: WriteKeyCodeFromKeyAscii = "219" Case 124: WriteKeyCodeFromKeyAscii = "220" Case 125: WriteKeyCodeFromKeyAscii = "221" Case 126: WriteKeyCodeFromKeyAscii = "192" Case Else: WriteKeyCodeFromKeyAscii = "N/A" End Select End Function '7.) WriteKeyAsciiFromChar() is a function that will take 'a character and will output it's equivalent KeyAscii value. 'It only takes one argument which is the character itself as a string. 'It will return "666" if it can't find an approriate KeyAscii value. Public Function WriteKeyAsciiFromChar(someChar As String) As Integer If someChar = " " Then WriteKeyAsciiFromChar = 32 Exit Function End If someChar = Trim(someChar) If UCase(someChar) = "NULL" Or UCase(someChar) = "NUL" Then WriteKeyAsciiFromChar = 0 ElseIf UCase(someChar) = "SOH" Then WriteKeyAsciiFromChar = 1 ElseIf UCase(someChar) = "STX" Then WriteKeyAsciiFromChar = 2 ElseIf UCase(someChar) = "ETX" Then WriteKeyAsciiFromChar = 3 ElseIf UCase(someChar) = "EOT" Then WriteKeyAsciiFromChar = 4 ElseIf UCase(someChar) = "ENQ" Then WriteKeyAsciiFromChar = 5 ElseIf UCase(someChar) = "ACK" Then WriteKeyAsciiFromChar = 6 ElseIf UCase(someChar) = "BEL" Or UCase(someChar) = "BELL" Then WriteKeyAsciiFromChar = 7 ElseIf UCase(someChar) = "BACKSPACE" Or UCase(someChar) = "BS" Then WriteKeyAsciiFromChar = 8 ElseIf UCase(someChar) = "TAB" Then WriteKeyAsciiFromChar = 9 ElseIf UCase(someChar) = "LF" Then WriteKeyAsciiFromChar = 10 ElseIf UCase(someChar) = "VT" Then WriteKeyAsciiFromChar = 11 ElseIf UCase(someChar) = "FF" Then WriteKeyAsciiFromChar = 12 ElseIf UCase(someChar) = "ENTER" Or UCase(someChar) = "RETURN" Or UCase(someChar) = "CR" Or UCase(someChar) = "RET" Or UCase(someChar) = "ENT" Then WriteKeyAsciiFromChar = 13 ElseIf UCase(someChar) = "SO" Then WriteKeyAsciiFromChar = 14 ElseIf UCase(someChar) = "SI" Then WriteKeyAsciiFromChar = 15 ElseIf UCase(someChar) = "DLE" Then WriteKeyAsciiFromChar = 16 ElseIf UCase(someChar) = "DC1" Then WriteKeyAsciiFromChar = 17 ElseIf UCase(someChar) = "DC2" Then WriteKeyAsciiFromChar = 18 ElseIf UCase(someChar) = "DC3" Then WriteKeyAsciiFromChar = 19 ElseIf UCase(someChar) = "DC4" Then WriteKeyAsciiFromChar = 20 ElseIf UCase(someChar) = "NAK" Then WriteKeyAsciiFromChar = 21 ElseIf UCase(someChar) = "SYN" Then WriteKeyAsciiFromChar = 22 ElseIf UCase(someChar) = "ETB" Then WriteKeyAsciiFromChar = 23 ElseIf UCase(someChar) = "CAN" Or someChar = "CANCEL" Then WriteKeyAsciiFromChar = 24 ElseIf UCase(someChar) = "EM" Then WriteKeyAsciiFromChar = 25 ElseIf UCase(someChar) = "SUB" Then WriteKeyAsciiFromChar = 26 ElseIf UCase(someChar) = "ESC" Or UCase(someChar) = "ESCAPE" Then WriteKeyAsciiFromChar = 27 ElseIf UCase(someChar) = "FS" Then WriteKeyAsciiFromChar = 28 ElseIf UCase(someChar) = "GS" Then WriteKeyAsciiFromChar = 29 ElseIf UCase(someChar) = "RS" Then WriteKeyAsciiFromChar = 30 ElseIf UCase(someChar) = "US" Then WriteKeyAsciiFromChar = 31 ElseIf UCase(someChar) = "SPACE" Or UCase(someChar) = "SP" Then WriteKeyAsciiFromChar = 32 ElseIf someChar = "!" Then WriteKeyAsciiFromChar = 33 ElseIf someChar = """" Then WriteKeyAsciiFromChar = 34 ElseIf someChar = "#" Then WriteKeyAsciiFromChar = 35 ElseIf someChar = "$" Then WriteKeyAsciiFromChar = 36 ElseIf someChar = "%" Then WriteKeyAsciiFromChar = 37 ElseIf someChar = "&" Then WriteKeyAsciiFromChar = 38 ElseIf someChar = "'" Then WriteKeyAsciiFromChar = 39 ElseIf someChar = "(" Then WriteKeyAsciiFromChar = 40 ElseIf someChar = ")" Then WriteKeyAsciiFromChar = 41 ElseIf someChar = "*" Then WriteKeyAsciiFromChar = 42 ElseIf someChar = "+" Then WriteKeyAsciiFromChar = 43 ElseIf someChar = "," Then WriteKeyAsciiFromChar = 44 ElseIf someChar = "-" Then WriteKeyAsciiFromChar = 45 ElseIf someChar = "." Then WriteKeyAsciiFromChar = 46 ElseIf someChar = "/" Then WriteKeyAsciiFromChar = 47 ElseIf someChar = "0" Then WriteKeyAsciiFromChar = 48 ElseIf someChar = "1" Then WriteKeyAsciiFromChar = 49 ElseIf someChar = "2" Then WriteKeyAsciiFromChar = 50 ElseIf someChar = "3" Then WriteKeyAsciiFromChar = 51 ElseIf someChar = "4" Then WriteKeyAsciiFromChar = 52 ElseIf someChar = "5" Then WriteKeyAsciiFromChar = 53 ElseIf someChar = "6" Then WriteKeyAsciiFromChar = 54 ElseIf someChar = "7" Then WriteKeyAsciiFromChar = 55 ElseIf someChar = "8" Then WriteKeyAsciiFromChar = 56 ElseIf someChar = "9" Then WriteKeyAsciiFromChar = 57 ElseIf someChar = ":" Then WriteKeyAsciiFromChar = 58 ElseIf someChar = ";" Then WriteKeyAsciiFromChar = 59 ElseIf someChar = "<" Then WriteKeyAsciiFromChar = 60 ElseIf someChar = "=" Then WriteKeyAsciiFromChar = 61 ElseIf someChar = ">" Then WriteKeyAsciiFromChar = 62 ElseIf someChar = "?" Then WriteKeyAsciiFromChar = 63 ElseIf someChar = "@" Then WriteKeyAsciiFromChar = 64 ElseIf someChar = "A" Then WriteKeyAsciiFromChar = 65 ElseIf someChar = "B" Then WriteKeyAsciiFromChar = 66 ElseIf someChar = "C" Then WriteKeyAsciiFromChar = 67 ElseIf someChar = "D" Then WriteKeyAsciiFromChar = 68 ElseIf someChar = "E" Then WriteKeyAsciiFromChar = 69 ElseIf someChar = "F" Then WriteKeyAsciiFromChar = 70 ElseIf someChar = "G" Then WriteKeyAsciiFromChar = 71 ElseIf someChar = "H" Then WriteKeyAsciiFromChar = 72 ElseIf someChar = "I" Then WriteKeyAsciiFromChar = 73 ElseIf someChar = "J" Then WriteKeyAsciiFromChar = 74 ElseIf someChar = "K" Then WriteKeyAsciiFromChar = 75 ElseIf someChar = "L" Then WriteKeyAsciiFromChar = 76 ElseIf someChar = "M" Then WriteKeyAsciiFromChar = 77 ElseIf someChar = "N" Then WriteKeyAsciiFromChar = 78 ElseIf someChar = "O" Then WriteKeyAsciiFromChar = 79 ElseIf someChar = "P" Then WriteKeyAsciiFromChar = 80 ElseIf someChar = "Q" Then WriteKeyAsciiFromChar = 81 ElseIf someChar = "R" Then WriteKeyAsciiFromChar = 82 ElseIf someChar = "S" Then WriteKeyAsciiFromChar = 83 ElseIf someChar = "T" Then WriteKeyAsciiFromChar = 84 ElseIf someChar = "U" Then WriteKeyAsciiFromChar = 85 ElseIf someChar = "V" Then WriteKeyAsciiFromChar = 86 ElseIf someChar = "W" Then WriteKeyAsciiFromChar = 87 ElseIf someChar = "X" Then WriteKeyAsciiFromChar = 88 ElseIf someChar = "Y" Then WriteKeyAsciiFromChar = 89 ElseIf someChar = "Z" Then WriteKeyAsciiFromChar = 90 ElseIf someChar = "[" Then WriteKeyAsciiFromChar = 91 ElseIf someChar = "\" Then WriteKeyAsciiFromChar = 92 ElseIf someChar = "]" Then WriteKeyAsciiFromChar = 93 ElseIf someChar = "^" Then WriteKeyAsciiFromChar = 94 ElseIf someChar = "_" Then WriteKeyAsciiFromChar = 95 ElseIf someChar = "`" Then WriteKeyAsciiFromChar = 96 ElseIf someChar = "a" Then WriteKeyAsciiFromChar = 97 ElseIf someChar = "b" Then WriteKeyAsciiFromChar = 98 ElseIf someChar = "c" Then WriteKeyAsciiFromChar = 99 ElseIf someChar = "d" Then WriteKeyAsciiFromChar = 100 ElseIf someChar = "e" Then WriteKeyAsciiFromChar = 101 ElseIf someChar = "f" Then WriteKeyAsciiFromChar = 102 ElseIf someChar = "g" Then WriteKeyAsciiFromChar = 103 ElseIf someChar = "h" Then WriteKeyAsciiFromChar = 104 ElseIf someChar = "i" Then WriteKeyAsciiFromChar = 105 ElseIf someChar = "j" Then WriteKeyAsciiFromChar = 106 ElseIf someChar = "k" Then WriteKeyAsciiFromChar = 107 ElseIf someChar = "l" Then WriteKeyAsciiFromChar = 108 ElseIf someChar = "m" Then WriteKeyAsciiFromChar = 109 ElseIf someChar = "n" Then WriteKeyAsciiFromChar = 110 ElseIf someChar = "o" Then WriteKeyAsciiFromChar = 111 ElseIf someChar = "p" Then WriteKeyAsciiFromChar = 112 ElseIf someChar = "q" Then WriteKeyAsciiFromChar = 113 ElseIf someChar = "r" Then WriteKeyAsciiFromChar = 114 ElseIf someChar = "s" Then WriteKeyAsciiFromChar = 115 ElseIf someChar = "t" Then WriteKeyAsciiFromChar = 116 ElseIf someChar = "u" Then WriteKeyAsciiFromChar = 117 ElseIf someChar = "v" Then WriteKeyAsciiFromChar = 118 ElseIf someChar = "w" Then WriteKeyAsciiFromChar = 119 ElseIf someChar = "x" Then WriteKeyAsciiFromChar = 120 ElseIf someChar = "y" Then WriteKeyAsciiFromChar = 121 ElseIf someChar = "z" Then WriteKeyAsciiFromChar = 122 ElseIf someChar = "{" Then WriteKeyAsciiFromChar = 123 ElseIf someChar = "|" Then WriteKeyAsciiFromChar = 124 ElseIf someChar = "}" Then WriteKeyAsciiFromChar = 125 ElseIf someChar = "~" Then WriteKeyAsciiFromChar = 126 ElseIf UCase(someChar) = "DEL" Or UCase(someChar) = "DELETE" Or UCase(someChar) = "CTRL-BACKSPACE" Or UCase(someChar) = "CTRL BACKSPACE" Or UCase(someChar) = "CTRL BS" Or UCase(someChar) = "CTRL-BS" Then WriteKeyAsciiFromChar = 127 ElseIf someChar = "€" Or UCase(someChar) = "ALT+0128" Or UCase(someChar) = "ALT 0128" Then WriteKeyAsciiFromChar = 128 ElseIf someChar = "" Or UCase(someChar) = "ALT+0129" Or UCase(someChar) = "ALT 0129" Then WriteKeyAsciiFromChar = 129 ElseIf someChar = "" Or UCase(someChar) = "ALT+0130" Or UCase(someChar) = "ALT 0130" Then WriteKeyAsciiFromChar = 130 ElseIf someChar = "" Or UCase(someChar) = "ALT+0131" Or UCase(someChar) = "ALT 0131" Then WriteKeyAsciiFromChar = 131 ElseIf someChar = "" Or UCase(someChar) = "ALT+0132" Or UCase(someChar) = "ALT 0132" Then WriteKeyAsciiFromChar = 132 ElseIf someChar = "" Or UCase(someChar) = "ALT+0133" Or UCase(someChar) = "ALT 0133" Then WriteKeyAsciiFromChar = 133 ElseIf someChar = "" Or UCase(someChar) = "ALT+0134" Or UCase(someChar) = "ALT 0134" Then WriteKeyAsciiFromChar = 134 ElseIf someChar = "" Or UCase(someChar) = "ALT+0135" Or UCase(someChar) = "ALT 0135" Then WriteKeyAsciiFromChar = 135 ElseIf someChar = "" Or UCase(someChar) = "ALT+0136" Or UCase(someChar) = "ALT 0136" Then WriteKeyAsciiFromChar = 136 ElseIf someChar = "" Or UCase(someChar) = "ALT+0137" Or UCase(someChar) = "ALT 0137" Then WriteKeyAsciiFromChar = 137 ElseIf someChar = "" Or UCase(someChar) = "ALT+0138" Or UCase(someChar) = "ALT 0138" Then WriteKeyAsciiFromChar = 138 ElseIf someChar = "" Or UCase(someChar) = "ALT+0139" Or UCase(someChar) = "ALT 0139" Then WriteKeyAsciiFromChar = 139 ElseIf someChar = "" Or UCase(someChar) = "ALT+0140" Or UCase(someChar) = "ALT 0140" Then WriteKeyAsciiFromChar = 140 ElseIf someChar = "" Or UCase(someChar) = "ALT+0141" Or UCase(someChar) = "ALT 0141" Then WriteKeyAsciiFromChar = 141 ElseIf someChar = "" Or UCase(someChar) = "ALT+0142" Or UCase(someChar) = "ALT 0142" Then WriteKeyAsciiFromChar = 142 ElseIf someChar = "" Or UCase(someChar) = "ALT+0143" Or UCase(someChar) = "ALT 0143" Then WriteKeyAsciiFromChar = 143 ElseIf someChar = "" Or UCase(someChar) = "ALT+0144" Or UCase(someChar) = "ALT 0144" Then WriteKeyAsciiFromChar = 144 ElseIf someChar = "" Or UCase(someChar) = "ALT+0145" Or UCase(someChar) = "ALT 0145" Then WriteKeyAsciiFromChar = 145 ElseIf someChar = "" Or UCase(someChar) = "ALT+0146" Or UCase(someChar) = "ALT 0146" Then WriteKeyAsciiFromChar = 146 ElseIf someChar = "" Or UCase(someChar) = "ALT+0147" Or UCase(someChar) = "ALT 0147" Then WriteKeyAsciiFromChar = 147 ElseIf someChar = "" Or UCase(someChar) = "ALT+0148" Or UCase(someChar) = "ALT 0148" Then WriteKeyAsciiFromChar = 148 ElseIf someChar = "" Or UCase(someChar) = "ALT+0149" Or UCase(someChar) = "ALT 0149" Then WriteKeyAsciiFromChar = 149 ElseIf someChar = "" Or UCase(someChar) = "ALT+0150" Or UCase(someChar) = "ALT 0150" Then WriteKeyAsciiFromChar = 150 ElseIf someChar = "" Or UCase(someChar) = "ALT+0151" Or UCase(someChar) = "ALT 0151" Then WriteKeyAsciiFromChar = 151 ElseIf someChar = "" Or UCase(someChar) = "ALT+0152" Or UCase(someChar) = "ALT 0152" Then WriteKeyAsciiFromChar = 152 ElseIf someChar = "" Or UCase(someChar) = "ALT+0153" Or UCase(someChar) = "ALT 0153" Then WriteKeyAsciiFromChar = 153 ElseIf someChar = "" Or UCase(someChar) = "ALT+0154" Or UCase(someChar) = "ALT 0154" Then WriteKeyAsciiFromChar = 154 ElseIf someChar = "" Or UCase(someChar) = "ALT+0155" Or UCase(someChar) = "ALT 0155" Then WriteKeyAsciiFromChar = 155 ElseIf someChar = "" Or UCase(someChar) = "ALT+0156" Or UCase(someChar) = "ALT 0156" Then WriteKeyAsciiFromChar = 156 ElseIf someChar = "" Or UCase(someChar) = "ALT+0157" Or UCase(someChar) = "ALT 0157" Then WriteKeyAsciiFromChar = 157 ElseIf someChar = "" Or UCase(someChar) = "ALT+0158" Or UCase(someChar) = "ALT 0158" Then WriteKeyAsciiFromChar = 158 ElseIf someChar = "" Or UCase(someChar) = "ALT+0159" Or UCase(someChar) = "ALT 0159" Then WriteKeyAsciiFromChar = 159 ElseIf someChar = "" Or UCase(someChar) = "ALT+0160" Or UCase(someChar) = "ALT 0160" Then WriteKeyAsciiFromChar = 160 ElseIf someChar = "" Or UCase(someChar) = "ALT+0161" Or UCase(someChar) = "ALT 0161" Then WriteKeyAsciiFromChar = 161 ElseIf someChar = "" Or UCase(someChar) = "ALT+0162" Or UCase(someChar) = "ALT 0162" Then WriteKeyAsciiFromChar = 162 ElseIf someChar = "£" Or UCase(someChar) = "ALT+0163" Or UCase(someChar) = "ALT 0163" Then WriteKeyAsciiFromChar = 163 ElseIf someChar = "" Or UCase(someChar) = "ALT+0164" Or UCase(someChar) = "ALT 0164" Then WriteKeyAsciiFromChar = 164 ElseIf someChar = "¥" Or UCase(someChar) = "ALT+0165" Or UCase(someChar) = "ALT 0165" Then WriteKeyAsciiFromChar = 165 ElseIf someChar = "" Or UCase(someChar) = "ALT+0166" Or UCase(someChar) = "ALT 0166" Then WriteKeyAsciiFromChar = 166 ElseIf someChar = "" Or UCase(someChar) = "ALT+0167" Or UCase(someChar) = "ALT 0167" Then WriteKeyAsciiFromChar = 167 ElseIf someChar = "" Or UCase(someChar) = "ALT+0168" Or UCase(someChar) = "ALT 0168" Then WriteKeyAsciiFromChar = 168 ElseIf someChar = "" Or UCase(someChar) = "ALT+0169" Or UCase(someChar) = "ALT 0169" Then WriteKeyAsciiFromChar = 169 ElseIf someChar = "" Or UCase(someChar) = "ALT+0170" Or UCase(someChar) = "ALT 0170" Then WriteKeyAsciiFromChar = 170 ElseIf someChar = "" Or UCase(someChar) = "ALT+0171" Or UCase(someChar) = "ALT 0171" Then WriteKeyAsciiFromChar = 171 ElseIf someChar = "" Or UCase(someChar) = "ALT+0172" Or UCase(someChar) = "ALT 0172" Then WriteKeyAsciiFromChar = 172 ElseIf someChar = "" Or UCase(someChar) = "ALT+0173" Or UCase(someChar) = "ALT 0173" Then WriteKeyAsciiFromChar = 173 ElseIf someChar = "" Or UCase(someChar) = "ALT+0174" Or UCase(someChar) = "ALT 0174" Then WriteKeyAsciiFromChar = 174 ElseIf someChar = "" Or UCase(someChar) = "ALT+0175" Or UCase(someChar) = "ALT 0175" Then WriteKeyAsciiFromChar = 175 ElseIf someChar = "" Or UCase(someChar) = "ALT+0176" Or UCase(someChar) = "ALT 0176" Then WriteKeyAsciiFromChar = 176 ElseIf someChar = "" Or UCase(someChar) = "ALT+0177" Or UCase(someChar) = "ALT 0177" Then WriteKeyAsciiFromChar = 177 ElseIf someChar = "" Or UCase(someChar) = "ALT+0178" Or UCase(someChar) = "ALT 0178" Then WriteKeyAsciiFromChar = 178 ElseIf someChar = "" Or UCase(someChar) = "ALT+0179" Or UCase(someChar) = "ALT 0179" Then WriteKeyAsciiFromChar = 179 ElseIf someChar = "" Or UCase(someChar) = "ALT+0180" Or UCase(someChar) = "ALT 0180" Then WriteKeyAsciiFromChar = 180 ElseIf someChar = "" Or UCase(someChar) = "ALT+0181" Or UCase(someChar) = "ALT 0181" Then WriteKeyAsciiFromChar = 181 ElseIf someChar = "" Or UCase(someChar) = "ALT+0182" Or UCase(someChar) = "ALT 0182" Then WriteKeyAsciiFromChar = 182 ElseIf someChar = "" Or UCase(someChar) = "ALT+0183" Or UCase(someChar) = "ALT 0183" Then WriteKeyAsciiFromChar = 183 ElseIf someChar = "" Or UCase(someChar) = "ALT+0184" Or UCase(someChar) = "ALT 0184" Then WriteKeyAsciiFromChar = 184 ElseIf someChar = "" Or UCase(someChar) = "ALT+0185" Or UCase(someChar) = "ALT 0185" Then WriteKeyAsciiFromChar = 185 ElseIf someChar = "" Or UCase(someChar) = "ALT+0186" Or UCase(someChar) = "ALT 0186" Then WriteKeyAsciiFromChar = 186 ElseIf someChar = "" Or UCase(someChar) = "ALT+0187" Or UCase(someChar) = "ALT 0187" Then WriteKeyAsciiFromChar = 187 ElseIf someChar = "" Or UCase(someChar) = "ALT+0188" Or UCase(someChar) = "ALT 0188" Then WriteKeyAsciiFromChar = 188 ElseIf someChar = "" Or UCase(someChar) = "ALT+0189" Or UCase(someChar) = "ALT 0189" Then WriteKeyAsciiFromChar = 189 ElseIf someChar = "" Or UCase(someChar) = "ALT+0190" Or UCase(someChar) = "ALT 0190" Then WriteKeyAsciiFromChar = 190 ElseIf someChar = "" Or UCase(someChar) = "ALT+0191" Or UCase(someChar) = "ALT 0191" Then WriteKeyAsciiFromChar = 191 ElseIf someChar = "" Or UCase(someChar) = "ALT+0192" Or UCase(someChar) = "ALT 0192" Then WriteKeyAsciiFromChar = 192 ElseIf someChar = "" Or UCase(someChar) = "ALT+0193" Or UCase(someChar) = "ALT 0193" Then WriteKeyAsciiFromChar = 193 ElseIf someChar = "" Or UCase(someChar) = "ALT+0194" Or UCase(someChar) = "ALT 0194" Then WriteKeyAsciiFromChar = 194 ElseIf someChar = "" Or UCase(someChar) = "ALT+0195" Or UCase(someChar) = "ALT 0195" Then WriteKeyAsciiFromChar = 195 ElseIf someChar = "" Or UCase(someChar) = "ALT+0196" Or UCase(someChar) = "ALT 0196" Then WriteKeyAsciiFromChar = 196 ElseIf someChar = "" Or UCase(someChar) = "ALT+0197" Or UCase(someChar) = "ALT 0197" Then WriteKeyAsciiFromChar = 197 ElseIf someChar = "" Or UCase(someChar) = "ALT+0198" Or UCase(someChar) = "ALT 0198" Then WriteKeyAsciiFromChar = 198 ElseIf someChar = "" Or UCase(someChar) = "ALT+0199" Or UCase(someChar) = "ALT 0199" Then WriteKeyAsciiFromChar = 199 ElseIf someChar = "" Or UCase(someChar) = "ALT+0200" Or UCase(someChar) = "ALT 0200" Then WriteKeyAsciiFromChar = 200 ElseIf someChar = "" Or UCase(someChar) = "ALT+0201" Or UCase(someChar) = "ALT 0201" Then WriteKeyAsciiFromChar = 201 ElseIf someChar = "" Or UCase(someChar) = "ALT+0202" Or UCase(someChar) = "ALT 0202" Then WriteKeyAsciiFromChar = 202 ElseIf someChar = "" Or UCase(someChar) = "ALT+0203" Or UCase(someChar) = "ALT 0203" Then WriteKeyAsciiFromChar = 203 ElseIf someChar = "" Or UCase(someChar) = "ALT+0204" Or UCase(someChar) = "ALT 0204" Then WriteKeyAsciiFromChar = 204 ElseIf someChar = "" Or UCase(someChar) = "ALT+0205" Or UCase(someChar) = "ALT 0205" Then WriteKeyAsciiFromChar = 205 ElseIf someChar = "" Or UCase(someChar) = "ALT+0206" Or UCase(someChar) = "ALT 0206" Then WriteKeyAsciiFromChar = 206 ElseIf someChar = "" Or UCase(someChar) = "ALT+0207" Or UCase(someChar) = "ALT 0207" Then WriteKeyAsciiFromChar = 207 ElseIf someChar = "" Or UCase(someChar) = "ALT+0208" Or UCase(someChar) = "ALT 0208" Then WriteKeyAsciiFromChar = 208 ElseIf someChar = "" Or UCase(someChar) = "ALT+0209" Or UCase(someChar) = "ALT 0209" Then WriteKeyAsciiFromChar = 209 ElseIf someChar = "" Or UCase(someChar) = "ALT+0210" Or UCase(someChar) = "ALT 0210" Then WriteKeyAsciiFromChar = 210 ElseIf someChar = "" Or UCase(someChar) = "ALT+0211" Or UCase(someChar) = "ALT 0211" Then WriteKeyAsciiFromChar = 211 ElseIf someChar = "" Or UCase(someChar) = "ALT+0212" Or UCase(someChar) = "ALT 0212" Then WriteKeyAsciiFromChar = 212 ElseIf someChar = "" Or UCase(someChar) = "ALT+0213" Or UCase(someChar) = "ALT 0213" Then WriteKeyAsciiFromChar = 213 ElseIf someChar = "" Or UCase(someChar) = "ALT+0214" Or UCase(someChar) = "ALT 0214" Then WriteKeyAsciiFromChar = 214 ElseIf someChar = "" Or UCase(someChar) = "ALT+0215" Or UCase(someChar) = "ALT 0215" Then WriteKeyAsciiFromChar = 215 ElseIf someChar = "" Or UCase(someChar) = "ALT+0216" Or UCase(someChar) = "ALT 0216" Then WriteKeyAsciiFromChar = 216 ElseIf someChar = "" Or UCase(someChar) = "ALT+0217" Or UCase(someChar) = "ALT 0217" Then WriteKeyAsciiFromChar = 217 ElseIf someChar = "" Or UCase(someChar) = "ALT+0218" Or UCase(someChar) = "ALT 0218" Then WriteKeyAsciiFromChar = 218 ElseIf someChar = "" Or UCase(someChar) = "ALT+0219" Or UCase(someChar) = "ALT 0219" Then WriteKeyAsciiFromChar = 219 ElseIf someChar = "" Or UCase(someChar) = "ALT+0220" Or UCase(someChar) = "ALT 0220" Then WriteKeyAsciiFromChar = 220 ElseIf someChar = "" Or UCase(someChar) = "ALT+0221" Or UCase(someChar) = "ALT 0221" Then WriteKeyAsciiFromChar = 221 ElseIf someChar = "" Or UCase(someChar) = "ALT+0222" Or UCase(someChar) = "ALT 0222" Then WriteKeyAsciiFromChar = 222 ElseIf someChar = "" Or UCase(someChar) = "ALT+0223" Or UCase(someChar) = "ALT 0223" Then WriteKeyAsciiFromChar = 223 ElseIf someChar = "" Or UCase(someChar) = "ALT+0224" Or UCase(someChar) = "ALT 0224" Then WriteKeyAsciiFromChar = 224 ElseIf someChar = "" Or UCase(someChar) = "ALT+0225" Or UCase(someChar) = "ALT 0225" Then WriteKeyAsciiFromChar = 225 ElseIf someChar = "" Or UCase(someChar) = "ALT+0226" Or UCase(someChar) = "ALT 0226" Then WriteKeyAsciiFromChar = 226 ElseIf someChar = "" Or UCase(someChar) = "ALT+0227" Or UCase(someChar) = "ALT 0227" Then WriteKeyAsciiFromChar = 227 ElseIf someChar = "" Or UCase(someChar) = "ALT+0228" Or UCase(someChar) = "ALT 0228" Then WriteKeyAsciiFromChar = 228 ElseIf someChar = "" Or UCase(someChar) = "ALT+0229" Or UCase(someChar) = "ALT 0229" Then WriteKeyAsciiFromChar = 229 ElseIf someChar = "" Or UCase(someChar) = "ALT+0230" Or UCase(someChar) = "ALT 0230" Then WriteKeyAsciiFromChar = 230 ElseIf someChar = "" Or UCase(someChar) = "ALT+0231" Or UCase(someChar) = "ALT 0231" Then WriteKeyAsciiFromChar = 231 ElseIf someChar = "" Or UCase(someChar) = "ALT+0232" Or UCase(someChar) = "ALT 0232" Then WriteKeyAsciiFromChar = 232 ElseIf someChar = "" Or UCase(someChar) = "ALT+0233" Or UCase(someChar) = "ALT 0233" Then WriteKeyAsciiFromChar = 233 ElseIf someChar = "" Or UCase(someChar) = "ALT+0234" Or UCase(someChar) = "ALT 0234" Then WriteKeyAsciiFromChar = 234 ElseIf someChar = "" Or UCase(someChar) = "ALT+0235" Or UCase(someChar) = "ALT 0235" Then WriteKeyAsciiFromChar = 235 ElseIf someChar = "" Or UCase(someChar) = "ALT+0236" Or UCase(someChar) = "ALT 0236" Then WriteKeyAsciiFromChar = 236 ElseIf someChar = "" Or UCase(someChar) = "ALT+0237" Or UCase(someChar) = "ALT 0237" Then WriteKeyAsciiFromChar = 237 ElseIf someChar = "" Or UCase(someChar) = "ALT+0238" Or UCase(someChar) = "ALT 0238" Then WriteKeyAsciiFromChar = 238 ElseIf someChar = "" Or UCase(someChar) = "ALT+0239" Or UCase(someChar) = "ALT 0239" Then WriteKeyAsciiFromChar = 239 ElseIf someChar = "" Or UCase(someChar) = "ALT+0240" Or UCase(someChar) = "ALT 0240" Then WriteKeyAsciiFromChar = 240 ElseIf someChar = "" Or UCase(someChar) = "ALT+0241" Or UCase(someChar) = "ALT 0241" Then WriteKeyAsciiFromChar = 241 ElseIf someChar = "" Or UCase(someChar) = "ALT+0242" Or UCase(someChar) = "ALT 0242" Then WriteKeyAsciiFromChar = 242 ElseIf someChar = "" Or UCase(someChar) = "ALT+0243" Or UCase(someChar) = "ALT 0243" Then WriteKeyAsciiFromChar = 243 ElseIf someChar = "" Or UCase(someChar) = "ALT+0244" Or UCase(someChar) = "ALT 0244" Then WriteKeyAsciiFromChar = 244 ElseIf someChar = "" Or UCase(someChar) = "ALT+0245" Or UCase(someChar) = "ALT 0245" Then WriteKeyAsciiFromChar = 245 ElseIf someChar = "" Or UCase(someChar) = "ALT+0246" Or UCase(someChar) = "ALT 0246" Then WriteKeyAsciiFromChar = 246 ElseIf someChar = "" Or UCase(someChar) = "ALT+0247" Or UCase(someChar) = "ALT 0247" Then WriteKeyAsciiFromChar = 247 ElseIf someChar = "" Or UCase(someChar) = "ALT+0248" Or UCase(someChar) = "ALT 0248" Then WriteKeyAsciiFromChar = 248 ElseIf someChar = "" Or UCase(someChar) = "ALT+0249" Or UCase(someChar) = "ALT 0249" Then WriteKeyAsciiFromChar = 249 ElseIf someChar = "" Or UCase(someChar) = "ALT+0250" Or UCase(someChar) = "ALT 0250" Then WriteKeyAsciiFromChar = 250 ElseIf someChar = "" Or UCase(someChar) = "ALT+0251" Or UCase(someChar) = "ALT 0251" Then WriteKeyAsciiFromChar = 251 ElseIf someChar = "" Or UCase(someChar) = "ALT+0252" Or UCase(someChar) = "ALT 0252" Then WriteKeyAsciiFromChar = 252 ElseIf someChar = "" Or UCase(someChar) = "ALT+0253" Or UCase(someChar) = "ALT 0253" Then WriteKeyAsciiFromChar = 253 ElseIf someChar = "" Or UCase(someChar) = "ALT+0254" Or UCase(someChar) = "ALT 0254" Then WriteKeyAsciiFromChar = 254 ElseIf someChar = "" Or UCase(someChar) = "ALT+0255" Or UCase(someChar) = "ALT 0255" Then WriteKeyAsciiFromChar = 255 Else WriteKeyAsciiFromChar = 666 End If End Function '8.) WriteKeyCodeFromChar() is a function that will take 'a character and will output it's equivalent KeyCode value. 'It only takes one argument which is the character itself as a string. 'It will return "666" if there is no equivalent KeyCode value. Public Function WriteKeyCodeFromChar(someChar As String) As Integer If someChar = " " Then WriteKeyCodeFromChar = 32 Else someChar = Trim(someChar) If UCase(someChar) = "NO KEY" Then WriteKeyCodeFromChar = 0 ElseIf UCase(someChar) = "LMOUSE" Then WriteKeyCodeFromChar = 1 ElseIf UCase(someChar) = "RMOUSE" Then WriteKeyCodeFromChar = 2 ElseIf UCase(someChar) = "CANCEL" Then WriteKeyCodeFromChar = 3 ElseIf UCase(someChar) = "MMOUSE" Then WriteKeyCodeFromChar = 4 ElseIf UCase(someChar) = "FIRST X" Then WriteKeyCodeFromChar = 5 ElseIf UCase(someChar) = "SECOND X" Then WriteKeyCodeFromChar = 6 ElseIf UCase(someChar) = "UNDEFINED" Then WriteKeyCodeFromChar = 7 ElseIf UCase(someChar) = "BACKSPACE" Or UCase(someChar) = "BS" Then WriteKeyCodeFromChar = 8 ElseIf UCase(someChar) = "TAB" Then WriteKeyCodeFromChar = 9 ElseIf UCase(someChar) = "LINEFEED" Or UCase(someChar) = "LF" Then WriteKeyCodeFromChar = 10 ElseIf UCase(someChar) = "UNDEFINED" Then WriteKeyCodeFromChar = 11 ElseIf UCase(someChar) = "CLEAR" Then WriteKeyCodeFromChar = 12 ElseIf UCase(someChar) = "RETURN" Then WriteKeyCodeFromChar = 13 ElseIf UCase(someChar) = "UNDEFINED" Then WriteKeyCodeFromChar = 14 ElseIf UCase(someChar) = "UNDEFINED" Then WriteKeyCodeFromChar = 15 ElseIf UCase(someChar) = "SHIFT" Then WriteKeyCodeFromChar = 16 ElseIf UCase(someChar) = "CTRL" Then WriteKeyCodeFromChar = 17 ElseIf UCase(someChar) = "ALT" Then WriteKeyCodeFromChar = 18 ElseIf UCase(someChar) = "PAUSE" Then WriteKeyCodeFromChar = 19 ElseIf UCase(someChar) = "CAPSLOCK" Then WriteKeyCodeFromChar = 20 ElseIf UCase(someChar) = "IME_KANA" Then WriteKeyCodeFromChar = 21 ElseIf UCase(someChar) = "UNDEFINED" Then WriteKeyCodeFromChar = 22 ElseIf UCase(someChar) = "IME_JUNJA" Then WriteKeyCodeFromChar = 23 ElseIf UCase(someChar) = "IME_FINAL" Then WriteKeyCodeFromChar = 24 ElseIf UCase(someChar) = "IME_HANJA" Then WriteKeyCodeFromChar = 25 ElseIf UCase(someChar) = "UNDEFINED" Then WriteKeyCodeFromChar = 26 ElseIf UCase(someChar) = "ESC" Then WriteKeyCodeFromChar = 27 ElseIf UCase(someChar) = "IME_CONV" Then WriteKeyCodeFromChar = 28 ElseIf UCase(someChar) = "IME_NONC" Then WriteKeyCodeFromChar = 29 ElseIf UCase(someChar) = "IME_ACPT" Then WriteKeyCodeFromChar = 30 ElseIf UCase(someChar) = "IME_MODE" Then WriteKeyCodeFromChar = 31 ElseIf UCase(someChar) = "SPACE" Then WriteKeyCodeFromChar = 32 ElseIf UCase(someChar) = "PGUP" Then WriteKeyCodeFromChar = 33 ElseIf UCase(someChar) = "PGDN" Then WriteKeyCodeFromChar = 34 ElseIf UCase(someChar) = "END" Then WriteKeyCodeFromChar = 35 ElseIf UCase(someChar) = "HOME" Then WriteKeyCodeFromChar = 36 ElseIf UCase(someChar) = "LEFT" Then WriteKeyCodeFromChar = 37 ElseIf UCase(someChar) = "UP" Then WriteKeyCodeFromChar = 38 ElseIf UCase(someChar) = "RIGHT" Then WriteKeyCodeFromChar = 39 ElseIf UCase(someChar) = "DOWN" Then WriteKeyCodeFromChar = 40 ElseIf UCase(someChar) = "SELECT" Then WriteKeyCodeFromChar = 41 ElseIf UCase(someChar) = "PRINT" Then WriteKeyCodeFromChar = 42 ElseIf UCase(someChar) = "EXECUTE" Then WriteKeyCodeFromChar = 43 ElseIf UCase(someChar) = "PRINTSCR" Then WriteKeyCodeFromChar = 44 ElseIf UCase(someChar) = "INSERT" Then WriteKeyCodeFromChar = 45 ElseIf UCase(someChar) = "DELETE" Then WriteKeyCodeFromChar = 46 ElseIf UCase(someChar) = "HELP" Then WriteKeyCodeFromChar = 47 ElseIf someChar = ")" Or someChar = "0" Then WriteKeyCodeFromChar = 48 ElseIf someChar = "!" Or someChar = "1" Then WriteKeyCodeFromChar = 49 ElseIf someChar = "@" Or someChar = "2" Then WriteKeyCodeFromChar = 50 ElseIf someChar = "#" Or someChar = "3" Then WriteKeyCodeFromChar = 51 ElseIf someChar = "$" Or someChar = "4" Then WriteKeyCodeFromChar = 52 ElseIf someChar = "%" Or someChar = "5" Then WriteKeyCodeFromChar = 53 ElseIf someChar = "^" Or someChar = "6" Then WriteKeyCodeFromChar = 54 ElseIf someChar = "&" Or someChar = "7" Then WriteKeyCodeFromChar = 55 ElseIf someChar = "*" Or someChar = "8" Then WriteKeyCodeFromChar = 56 ElseIf someChar = "(" Or someChar = "9" Then WriteKeyCodeFromChar = 57 ElseIf UCase(someChar) = "UNDEFINED" Then WriteKeyCodeFromChar = 58 ElseIf UCase(someChar) = "UNDEFINED" Then WriteKeyCodeFromChar = 59 ElseIf UCase(someChar) = "UNDEFINED" Then WriteKeyCodeFromChar = 60 ElseIf UCase(someChar) = "UNDEFINED" Then WriteKeyCodeFromChar = 61 ElseIf UCase(someChar) = "UNDEFINED" Then WriteKeyCodeFromChar = 62 ElseIf UCase(someChar) = "UNDEFINED" Then WriteKeyCodeFromChar = 63 ElseIf UCase(someChar) = "UNDEFINED" Then WriteKeyCodeFromChar = 64 ElseIf UCase(someChar) = "A" Then WriteKeyCodeFromChar = 65 ElseIf UCase(someChar) = "B" Then WriteKeyCodeFromChar = 66 ElseIf UCase(someChar) = "C" Then WriteKeyCodeFromChar = 67 ElseIf UCase(someChar) = "D" Then WriteKeyCodeFromChar = 68 ElseIf UCase(someChar) = "E" Then WriteKeyCodeFromChar = 69 ElseIf UCase(someChar) = "F" Then WriteKeyCodeFromChar = 70 ElseIf UCase(someChar) = "G" Then WriteKeyCodeFromChar = 71 ElseIf UCase(someChar) = "H" Then WriteKeyCodeFromChar = 72 ElseIf UCase(someChar) = "I" Then WriteKeyCodeFromChar = 73 ElseIf UCase(someChar) = "J" Then WriteKeyCodeFromChar = 74 ElseIf UCase(someChar) = "K" Then WriteKeyCodeFromChar = 75 ElseIf UCase(someChar) = "L" Then WriteKeyCodeFromChar = 76 ElseIf UCase(someChar) = "M" Then WriteKeyCodeFromChar = 77 ElseIf UCase(someChar) = "N" Then WriteKeyCodeFromChar = 78 ElseIf UCase(someChar) = "O" Then WriteKeyCodeFromChar = 79 ElseIf UCase(someChar) = "P" Then WriteKeyCodeFromChar = 80 ElseIf UCase(someChar) = "Q" Then WriteKeyCodeFromChar = 81 ElseIf UCase(someChar) = "R" Then WriteKeyCodeFromChar = 82 ElseIf UCase(someChar) = "S" Then WriteKeyCodeFromChar = 83 ElseIf UCase(someChar) = "T" Then WriteKeyCodeFromChar = 84 ElseIf UCase(someChar) = "U" Then WriteKeyCodeFromChar = 85 ElseIf UCase(someChar) = "V" Then WriteKeyCodeFromChar = 86 ElseIf UCase(someChar) = "W" Then WriteKeyCodeFromChar = 87 ElseIf UCase(someChar) = "X" Then WriteKeyCodeFromChar = 88 ElseIf UCase(someChar) = "Y" Then WriteKeyCodeFromChar = 89 ElseIf UCase(someChar) = "Z" Then WriteKeyCodeFromChar = 90 ElseIf UCase(someChar) = "LWINDOWS" Then WriteKeyCodeFromChar = 91 ElseIf UCase(someChar) = "RWINDOWS" Then WriteKeyCodeFromChar = 92 ElseIf UCase(someChar) = "CONTEXT" Then WriteKeyCodeFromChar = 93 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 94 ElseIf UCase(someChar) = "SLEEP" Then WriteKeyCodeFromChar = 95 ElseIf UCase(someChar) = "INSERT" Or someChar = "0" Then WriteKeyCodeFromChar = 96 ElseIf UCase(someChar) = "END" Or someChar = "1" Then WriteKeyCodeFromChar = 97 ElseIf UCase(someChar) = "DOWN" Or someChar = "2" Then WriteKeyCodeFromChar = 98 ElseIf UCase(someChar) = "PGDN" Or someChar = "3" Then WriteKeyCodeFromChar = 99 ElseIf UCase(someChar) = "LEFT" Or someChar = "4" Then WriteKeyCodeFromChar = 100 ElseIf someChar = "5" Then WriteKeyCodeFromChar = 101 ElseIf UCase(someChar) = "RIGHT" Or someChar = "6" Then WriteKeyCodeFromChar = 102 ElseIf UCase(someChar) = "HOME" Or someChar = "7" Then WriteKeyCodeFromChar = 103 ElseIf UCase(someChar) = "UP" Or someChar = "8" Then WriteKeyCodeFromChar = 104 ElseIf UCase(someChar) = "PGUP" Or someChar = "9" Then WriteKeyCodeFromChar = 105 ElseIf someChar = "*" Then WriteKeyCodeFromChar = 106 ElseIf someChar = "+" Then WriteKeyCodeFromChar = 107 ElseIf UCase(someChar) = "SEPARATOR" Then WriteKeyCodeFromChar = 108 ElseIf someChar = "-" Then WriteKeyCodeFromChar = 109 ElseIf UCase(someChar) = "DEL" Then WriteKeyCodeFromChar = 110 ElseIf someChar = "/" Then WriteKeyCodeFromChar = 111 ElseIf UCase(someChar) = "F1" Then WriteKeyCodeFromChar = 112 ElseIf UCase(someChar) = "F2" Then WriteKeyCodeFromChar = 113 ElseIf UCase(someChar) = "F3" Then WriteKeyCodeFromChar = 114 ElseIf UCase(someChar) = "F4" Then WriteKeyCodeFromChar = 115 ElseIf UCase(someChar) = "F5" Then WriteKeyCodeFromChar = 116 ElseIf UCase(someChar) = "F6" Then WriteKeyCodeFromChar = 117 ElseIf UCase(someChar) = "F7" Then WriteKeyCodeFromChar = 118 ElseIf UCase(someChar) = "F8" Then WriteKeyCodeFromChar = 119 ElseIf UCase(someChar) = "F9" Then WriteKeyCodeFromChar = 120 ElseIf UCase(someChar) = "F10" Then WriteKeyCodeFromChar = 121 ElseIf UCase(someChar) = "F11" Then WriteKeyCodeFromChar = 122 ElseIf UCase(someChar) = "F12" Then WriteKeyCodeFromChar = 123 ElseIf UCase(someChar) = "F13" Then WriteKeyCodeFromChar = 124 ElseIf UCase(someChar) = "F14" Then WriteKeyCodeFromChar = 125 ElseIf UCase(someChar) = "F15" Then WriteKeyCodeFromChar = 126 ElseIf UCase(someChar) = "F16" Then WriteKeyCodeFromChar = 127 ElseIf UCase(someChar) = "F17" Then WriteKeyCodeFromChar = 128 ElseIf UCase(someChar) = "F18" Then WriteKeyCodeFromChar = 129 ElseIf UCase(someChar) = "F19" Then WriteKeyCodeFromChar = 130 ElseIf UCase(someChar) = "F20" Then WriteKeyCodeFromChar = 131 ElseIf UCase(someChar) = "F21" Then WriteKeyCodeFromChar = 132 ElseIf UCase(someChar) = "F22" Then WriteKeyCodeFromChar = 133 ElseIf UCase(someChar) = "F23" Then WriteKeyCodeFromChar = 134 ElseIf UCase(someChar) = "F24" Then WriteKeyCodeFromChar = 135 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 136 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 137 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 138 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 139 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 140 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 141 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 142 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 143 ElseIf UCase(someChar) = "NUMLOCK" Then WriteKeyCodeFromChar = 144 ElseIf UCase(someChar) = "SCRLLOCK" Then WriteKeyCodeFromChar = 145 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 146 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 147 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 148 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 149 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 150 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 151 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 152 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 153 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 154 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 155 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 156 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 157 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 158 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 159 ElseIf UCase(someChar) = "LSHIFT" Then WriteKeyCodeFromChar = 160 ElseIf UCase(someChar) = "RSHIFT" Then WriteKeyCodeFromChar = 161 ElseIf UCase(someChar) = "LCTRL" Then WriteKeyCodeFromChar = 162 ElseIf UCase(someChar) = "RCTRL" Then WriteKeyCodeFromChar = 163 ElseIf UCase(someChar) = "LALT" Then WriteKeyCodeFromChar = 164 ElseIf UCase(someChar) = "RALT" Then WriteKeyCodeFromChar = 165 ElseIf UCase(someChar) = "BACK" Then WriteKeyCodeFromChar = 166 ElseIf UCase(someChar) = "FORWARD" Then WriteKeyCodeFromChar = 167 ElseIf UCase(someChar) = "REFRESH" Then WriteKeyCodeFromChar = 168 ElseIf UCase(someChar) = "STOP" Then WriteKeyCodeFromChar = 169 ElseIf UCase(someChar) = "SEARCH" Then WriteKeyCodeFromChar = 170 ElseIf UCase(someChar) = "FAVORITES" Then WriteKeyCodeFromChar = 171 ElseIf UCase(someChar) = "HOME" Then WriteKeyCodeFromChar = 172 ElseIf UCase(someChar) = "MUTE" Then WriteKeyCodeFromChar = 173 ElseIf UCase(someChar) = "VOLDOWN" Then WriteKeyCodeFromChar = 174 ElseIf UCase(someChar) = "VOLUP" Then WriteKeyCodeFromChar = 175 ElseIf UCase(someChar) = "NEXT" Then WriteKeyCodeFromChar = 176 ElseIf UCase(someChar) = "PREV" Then WriteKeyCodeFromChar = 177 ElseIf UCase(someChar) = "STOP" Then WriteKeyCodeFromChar = 178 ElseIf UCase(someChar) = "PLAY" Then WriteKeyCodeFromChar = 179 ElseIf UCase(someChar) = "EMAIL" Then WriteKeyCodeFromChar = 180 ElseIf UCase(someChar) = "MEDIA" Then WriteKeyCodeFromChar = 181 ElseIf UCase(someChar) = "START1" Then WriteKeyCodeFromChar = 182 ElseIf UCase(someChar) = "START2" Then WriteKeyCodeFromChar = 183 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 184 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 185 ElseIf someChar = ":" Or someChar = ";" Then WriteKeyCodeFromChar = 186 ElseIf someChar = "+" Or someChar = "=" Then WriteKeyCodeFromChar = 187 ElseIf someChar = "<" Or someChar = "," Then WriteKeyCodeFromChar = 188 ElseIf someChar = "_" Or someChar = "-" Then WriteKeyCodeFromChar = 189 ElseIf someChar = ">" Or someChar = "." Then WriteKeyCodeFromChar = 190 ElseIf someChar = "?" Or someChar = "/" Then WriteKeyCodeFromChar = 191 ElseIf someChar = "~" Or someChar = "`" Then WriteKeyCodeFromChar = 192 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 193 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 194 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 195 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 196 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 197 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 198 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 199 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 200 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 201 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 202 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 203 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 204 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 205 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 206 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 207 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 208 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 209 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 210 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 211 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 212 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 213 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 214 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 215 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 216 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 217 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 218 ElseIf someChar = "{" Or someChar = "[" Then WriteKeyCodeFromChar = 219 ElseIf someChar = "|" Or someChar = "\" Then WriteKeyCodeFromChar = 220 ElseIf someChar = "}" Or someChar = "]" Then WriteKeyCodeFromChar = 221 ElseIf someChar = """" Or someChar = "'" Then WriteKeyCodeFromChar = 222 ElseIf UCase(someChar) = "MISC" Then WriteKeyCodeFromChar = 223 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 224 ElseIf UCase(someChar) = "OEM" Then WriteKeyCodeFromChar = 225 ElseIf UCase(someChar) = "OEM ANG" Then WriteKeyCodeFromChar = 226 ElseIf UCase(someChar) = "OEM" Then WriteKeyCodeFromChar = 227 ElseIf UCase(someChar) = "OEM" Then WriteKeyCodeFromChar = 228 ElseIf UCase(someChar) = "PROCESS" Then WriteKeyCodeFromChar = 229 ElseIf UCase(someChar) = "OEM" Then WriteKeyCodeFromChar = 230 ElseIf UCase(someChar) = "UNICODE" Then WriteKeyCodeFromChar = 231 ElseIf UCase(someChar) = "UNASSIGNED" Then WriteKeyCodeFromChar = 232 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 233 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 234 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 235 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 236 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 237 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 238 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 239 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 240 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 241 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 242 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 243 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 244 ElseIf UCase(someChar) = "OEM SPECIFIC" Then WriteKeyCodeFromChar = 245 ElseIf UCase(someChar) = "ATTN" Then WriteKeyCodeFromChar = 246 ElseIf UCase(someChar) = "CRSEL" Then WriteKeyCodeFromChar = 247 ElseIf UCase(someChar) = "EXSEL" Then WriteKeyCodeFromChar = 248 ElseIf UCase(someChar) = "ERASE EOF" Then WriteKeyCodeFromChar = 249 ElseIf UCase(someChar) = "PLAY" Then WriteKeyCodeFromChar = 250 ElseIf UCase(someChar) = "ZOOM" Then WriteKeyCodeFromChar = 251 ElseIf UCase(someChar) = "RESERVED" Then WriteKeyCodeFromChar = 252 ElseIf UCase(someChar) = "PA1" Then WriteKeyCodeFromChar = 253 ElseIf UCase(someChar) = "CLEAR" Then WriteKeyCodeFromChar = 254 ElseIf UCase(someChar) = "MISC" Then WriteKeyCodeFromChar = 255 Else WriteKeyCodeFromChar = 666 End If End If End Function '9.) IsShiftCharacter() is a function that will return true if the SHIFT key has to be 'held down to create a certain character. For example to create the dollar sign ($) 'you have to press SHIFT + 4, so IsShiftCharacter("$") would return true. Public Function IsShiftCharacter(someChar As String) As Boolean Select Case WriteKeyAsciiFromChar(someChar) Case 33 To 38, 40 To 43, 58, 60, 62 To 90, 94 To 95, 123 To 126 IsShiftCharacter = True Case Default IsShiftCharacter = False End Select '! 33, " 34, # 35, $ 36, % 37, & 38, ( 40, ) 41, * 42, + 43, : 58, < 60, > 62, ? 63, @ 64 'A 65, B 66, C 67, D 68, E 69, F 70, G 71, H 72, I 73, J 74, K 75, L 76, M 77, N 78 'O 79, P 80, Q 81, R 82, S 83, T 84, U 85, V 86, W 87, X 88, Y 89, Z 90, ^ 94, _ 95 '{ 123, | 124, } 125, ~ 126 End Function '10.) IsShiftDown() is a function that will return true if the SHIFT key is being held down. Public Function IsShiftDown(Shift As Integer) As Boolean If Shift = 1 Or Shift = 3 Or Shift = 5 Or Shift = 7 Then IsShiftDown = True Else IsShiftDown = False End If End Function '11.) IsCtrlDOwn() is a function that will return true if the CTRL key is being held down. Public Function IsCtrlDown(Shift As Integer) As Boolean If Shift = 2 Or Shift = 3 Or Shift = 6 Or Shift = 7 Then IsCtrlDown = True Else IsCtrlDown = False End If End Function '12.) IsAltDown() is a function that will return true if the ALT key is being held down. Public Function IsAltDown(Shift As Integer) As Boolean If Shift = 4 Or Shift = 5 Or Shift = 6 Or Shift = 7 Then IsAltDown = True Else IsAltDown = False End If End Function