#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <File.au3>
#include <Misc.au3>

#include <String.au3>

Opt("GUIOnEventMode", 1)
Opt("MouseCoordMode", 0)

Global $rGO = False, $rAWIN = "Unbestimmt", $rREC, $rTIME, $rMPOS, $rPRESSED
Dim $rKEYLIST[117][2]
$rKEYLIST[0][0] = "Keylist"

$rKEYLIST[1][0] = "01"
$rKEYLIST[1][1] = "left"
$rKEYLIST[2][0] = "02"
$rKEYLIST[2][1] = "Right"
$rKEYLIST[3][0] = "04"
$rKEYLIST[3][1] = "Middle"
$rKEYLIST[4][0] = "05"
$rKEYLIST[4][1] = "Windows 2000/XP: X1"
$rKEYLIST[5][0] = "06"
$rKEYLIST[5][1] = "Windows 2000/XP: X2"

$rKEYLIST[6][0] = "08"
$rKEYLIST[6][1] = "BACKSPACE"
$rKEYLIST[7][0] = "09"
$rKEYLIST[7][1] = "TAB"
$rKEYLIST[8][0] = "0C"
$rKEYLIST[8][1] = "CLEAR"
$rKEYLIST[9][0] = "0D"
$rKEYLIST[9][1] = "ENTER"
$rKEYLIST[10][0] = "10"
$rKEYLIST[10][1] = "SHIFT"
$rKEYLIST[11][0] = "11"
$rKEYLIST[11][1] = "CTRL"
$rKEYLIST[12][0] = "12"
$rKEYLIST[12][1] = "ALT"
$rKEYLIST[13][0] = "13"
$rKEYLIST[13][1] = "PAUSE"
$rKEYLIST[14][0] = "14"
$rKEYLIST[14][1] = "CAPSLOCK"
$rKEYLIST[15][0] = "1B"
$rKEYLIST[15][1] = "ESC"
$rKEYLIST[16][0] = "20"
$rKEYLIST[16][1] = "SPACE"
$rKEYLIST[17][0] = "21"

$rKEYLIST[17][1] = "PGUP"
$rKEYLIST[18][0] = "22"
$rKEYLIST[18][1] = "PGDN"
$rKEYLIST[19][0] = "23"
$rKEYLIST[19][1] = "END"
$rKEYLIST[20][0] = "24"
$rKEYLIST[20][1] = "HOME"
$rKEYLIST[21][0] = "25"

$rKEYLIST[21][1] = "LEFT"
$rKEYLIST[22][0] = "26"
$rKEYLIST[22][1] = "UP"
$rKEYLIST[23][0] = "27"
$rKEYLIST[23][1] = "RIGHT"
$rKEYLIST[24][0] = "28"
$rKEYLIST[24][1] = "DOWN"
$rKEYLIST[25][0] = "29"

$rKEYLIST[25][1] = "SELECT"
$rKEYLIST[26][0] = "2A"
$rKEYLIST[26][1] = "PRINT"
$rKEYLIST[27][0] = "2B"
$rKEYLIST[27][1] = "EXECUTE"
$rKEYLIST[28][0] = "2C"
$rKEYLIST[28][1] = "PRINTSCREEN"
$rKEYLIST[29][0] = "2D"
$rKEYLIST[29][1] = "INS"
$rKEYLIST[30][0] = "2E"
$rKEYLIST[30][1] = "DEL"

$rKEYLIST[31][0] = "30"
$rKEYLIST[31][1] = "0"
$rKEYLIST[32][0] = "31"
$rKEYLIST[32][1] = "1"
$rKEYLIST[33][0] = "32"
$rKEYLIST[33][1] = "2"
$rKEYLIST[34][0] = "33"
$rKEYLIST[34][1] = "3"
$rKEYLIST[35][0] = "34"
$rKEYLIST[35][1] = "4"
$rKEYLIST[36][0] = "35"
$rKEYLIST[36][1] = "5"
$rKEYLIST[37][0] = "36"
$rKEYLIST[37][1] = "6"
$rKEYLIST[38][0] = "37"
$rKEYLIST[38][1] = "7"
$rKEYLIST[39][0] = "38"
$rKEYLIST[39][1] = "8"
$rKEYLIST[40][0] = "39"
$rKEYLIST[40][1] = "9"
$rKEYLIST[41][0] = "41"
$rKEYLIST[41][1] = "A"
$rKEYLIST[42][0] = "42"
$rKEYLIST[42][1] = "B"
$rKEYLIST[43][0] = "43"
$rKEYLIST[43][1] = "C"
$rKEYLIST[44][0] = "44"
$rKEYLIST[44][1] = "D"
$rKEYLIST[45][0] = "45"
$rKEYLIST[45][1] = "E"
$rKEYLIST[46][0] = "46"
$rKEYLIST[46][1] = "F"
$rKEYLIST[47][0] = "47"
$rKEYLIST[47][1] = "G"
$rKEYLIST[48][0] = "48"
$rKEYLIST[48][1] = "H"
$rKEYLIST[49][0] = "49"
$rKEYLIST[49][1] = "I"
$rKEYLIST[50][0] = "4A"
$rKEYLIST[50][1] = "J"
$rKEYLIST[51][0] = "4B"
$rKEYLIST[51][1] = "K"
$rKEYLIST[52][0] = "4C"
$rKEYLIST[52][1] = "L"
$rKEYLIST[53][0] = "4D"
$rKEYLIST[53][1] = "M"
$rKEYLIST[54][0] = "4E"
$rKEYLIST[54][1] = "N"
$rKEYLIST[55][0] = "4F"
$rKEYLIST[55][1] = "O"
$rKEYLIST[56][0] = "50"
$rKEYLIST[56][1] = "P"
$rKEYLIST[57][0] = "51"
$rKEYLIST[57][1] = "Q"
$rKEYLIST[58][0] = "52"
$rKEYLIST[58][1] = "R"
$rKEYLIST[59][0] = "53"
$rKEYLIST[59][1] = "S"
$rKEYLIST[60][0] = "54"
$rKEYLIST[60][1] = "T"
$rKEYLIST[61][0] = "55"
$rKEYLIST[61][1] = "U"
$rKEYLIST[62][0] = "56"
$rKEYLIST[62][1] = "V"
$rKEYLIST[63][0] = "57"
$rKEYLIST[63][1] = "W"
$rKEYLIST[64][0] = "58"
$rKEYLIST[64][1] = "X"
$rKEYLIST[65][0] = "59"
$rKEYLIST[65][1] = "Y"
$rKEYLIST[66][0] = "5A"
$rKEYLIST[66][1] = "Z"

$rKEYLIST[67][0] = "5B"
$rKEYLIST[67][1] = "LWIN"
$rKEYLIST[68][0] = "5C"
$rKEYLIST[68][1] = "RWIN"

$rKEYLIST[69][0] = "60"
$rKEYLIST[69][1] = "NUMPAD0"
$rKEYLIST[70][0] = "61"
$rKEYLIST[70][1] = "NUMPAD1"
$rKEYLIST[71][0] = "62"
$rKEYLIST[71][1] = "NUMPAD2"
$rKEYLIST[72][0] = "63"
$rKEYLIST[72][1] = "NUMPAD3"
$rKEYLIST[73][0] = "64"
$rKEYLIST[73][1] = "NUMPAD4"
$rKEYLIST[74][0] = "65"
$rKEYLIST[74][1] = "NUMPAD5"
$rKEYLIST[75][0] = "66"
$rKEYLIST[75][1] = "NUMPAD6"
$rKEYLIST[76][0] = "67"
$rKEYLIST[76][1] = "NUMPAD7"
$rKEYLIST[77][0] = "68"
$rKEYLIST[77][1] = "NUMPAD8"
$rKEYLIST[78][0] = "69"
$rKEYLIST[78][1] = "NUMPAD9"

$rKEYLIST[79][0] = "6A"
$rKEYLIST[79][1] = "NUMPADMULT"
$rKEYLIST[80][0] = "6B"
$rKEYLIST[80][1] = "NUMPADADD"
$rKEYLIST[81][0] = "6C"
$rKEYLIST[81][1] = "Separator"
$rKEYLIST[82][0] = "6D"
$rKEYLIST[82][1] = "NUMPADSUB"
$rKEYLIST[83][0] = "6E"
$rKEYLIST[83][1] = "NUMPADDOT"
$rKEYLIST[84][0] = "6F"
$rKEYLIST[84][1] = "NUMPADDIV"

$rKEYLIST[85][0] = "70"
$rKEYLIST[85][1] = "F1"
$rKEYLIST[86][0] = "71"
$rKEYLIST[86][1] = "F2"
$rKEYLIST[87][0] = "72"
$rKEYLIST[87][1] = "F3"
$rKEYLIST[88][0] = "73"
$rKEYLIST[88][1] = "F4"
$rKEYLIST[89][0] = "74"
$rKEYLIST[89][1] = "F5"
$rKEYLIST[90][0] = "75"
$rKEYLIST[90][1] = "F6"
$rKEYLIST[91][0] = "76"
$rKEYLIST[91][1] = "F7"
$rKEYLIST[92][0] = "77"
$rKEYLIST[92][1] = "F8"
$rKEYLIST[93][0] = "78"
$rKEYLIST[93][1] = "F9"
$rKEYLIST[94][0] = "79"
$rKEYLIST[94][1] = "F10"
$rKEYLIST[95][0] = "7A"
$rKEYLIST[95][1] = "F11"
$rKEYLIST[96][0] = "7B"
$rKEYLIST[96][1] = "F12"

$rKEYLIST[97][0] = "7C-7F"
$rKEYLIST[97][1] = "F13 - F16"
$rKEYLIST[98][0] = "80-87H"
$rKEYLIST[98][1] = "F17 - F24"

$rKEYLIST[99][0] = "90"
$rKEYLIST[99][1] = "NUMLOCK"
$rKEYLIST[100][0] = "91"
$rKEYLIST[100][1] = "SCROLL LOCK"

$rKEYLIST[101][0] = "A0"
$rKEYLIST[101][1] = "LSHIFT"
$rKEYLIST[102][0] = "A1"
$rKEYLIST[102][1] = "RSHIFT"
$rKEYLIST[103][0] = "A2"
$rKEYLIST[103][1] = "LCTRL"
$rKEYLIST[104][0] = "A3"
$rKEYLIST[104][1] = "RCTRL"
$rKEYLIST[105][0] = "A4"

$rKEYLIST[105][1] = "Left MENU"
$rKEYLIST[106][0] = "A5"
$rKEYLIST[106][1] = "Right MENU"
$rKEYLIST[107][0] = "BA"
$rKEYLIST[107][1] = ";"
$rKEYLIST[108][0] = "BB"
$rKEYLIST[108][1] = "="
$rKEYLIST[109][0] = "BC"
$rKEYLIST[109][1] = ","
$rKEYLIST[110][0] = "BD"
$rKEYLIST[110][1] = "-"
$rKEYLIST[111][0] = "BE"
$rKEYLIST[111][1] = "."
$rKEYLIST[112][0] = "BF"
$rKEYLIST[112][1] = "/"
$rKEYLIST[113][0] = "C0"
$rKEYLIST[113][1] = "`"
$rKEYLIST[114][0] = "DB"
$rKEYLIST[114][1] = "["
$rKEYLIST[115][0] = "DC"
$rKEYLIST[115][1] = "\"
$rKEYLIST[116][0] = "DD"
$rKEYLIST[116][1] = "]"


$dll = DllOpen("user32.dll")

#Region - GUI Create
$bGUI = GUICreate('B2F21C7751E37B8C196D9A2DC579C62DE28CC42B', 100, 25, 0, 0, $WS_POPUP, BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
GUISetOnEvent($GUI_EVENT_CLOSE, "_rExit")
$bGO = GUICtrlCreateButton('Start', 0, 0, 100, 25)
GUICtrlSetOnEvent(-1, "_tGo")
GUISetState()
#EndRegion - GUI Create

Func _tGO()
	If $rGO Then
		$rGO = False
		_ArrayAdd($rREC, "#Endregion --- SEuBo's Recorder generated code ---")
		_FileWriteFromArray(@TempDir & "\Recorded.txt", $rREC)
		ShellExecute(@TempDir & "\Recorded.txt")

	Else
		$rGO = True
		GUICtrlSetData($bGO, 'Click here to stop')
		Dim $rREC[3] = ["#region --- SEuBo's Recorder generated code ---", "Opt(""MouseCoordMode"",0)", "Opt(""WinTitleMatchMode"",4)"]
		$rTIME = TimerInit()
	EndIf
EndFunc   ;==>_tGO

Func _rExit()
	Exit
	DllClose($dll)
EndFunc   ;==>_rExit

Func _addRegData()
	_ArrayAdd($rREC, "Sleep(" & Round(TimerDiff($rTIME)) & ")")
	$rMPOS = MouseGetPos()
	If WinGetHandle("") <> $rAWIN Then
		$rAWIN = WinGetHandle("")
		$rMPOS = MouseGetPos()
		_ArrayAdd($rREC, "WinWait(""" & WinGetTitle($rAWIN) & ""","""")")
		_ArrayAdd($rREC, "If Not WinActive(""" & WinGetTitle($rAWIN) & ""","""") Then WinActivate(""" & WinGetTitle($rAWIN) & ""","""")")
	EndIf
	_ArrayAdd($rREC, "MouseMove(" & $rMPOS[0] & "," & $rMPOS[1] & ")")
	$rTIME = TimerInit()
EndFunc   ;==>_addRegData

Func _addMouseData()
	_ArrayAdd($rREC, "MouseDown(""" & $rKEYLIST[$rPRESSED][1] & """)")
	$rTIMEPRESSED = TimerInit()

	Do
		Sleep(10)
	Until Not _IsPressed($rKEYLIST[$rPRESSED][0], $dll)

	_ArrayAdd($rREC, "Sleep(" & Round(TimerDiff($rTIMEPRESSED)) & ")")

	If $rMPOS[0] <> MouseGetPos(0) Or $rMPOS[1] <> MouseGetPos(1) Then _ArrayAdd($rREC, "MouseMove(" & MouseGetPos(0) & "," & MouseGetPos(1) & ")")
	_ArrayAdd($rREC, "MouseUp(""" & $rKEYLIST[$rPRESSED][1] & """)")
EndFunc   ;==>_addMouseData

Func _addKeyboardData()
	Local $Shift = False
	If _IsPressed(10) Then $Shift = True

	$rTIMEPRESSED = TimerInit()

	Do
		Sleep(1)
	Until Not _IsPressed($rKEYLIST[$rPRESSED][0], $dll)

	If TimerDiff($rTIMEPRESSED) < 200 Then
		If $Shift Then
			_ArrayAdd($rREC, "Send(""+{" & StringLower($rKEYLIST[$rPRESSED][1]) & "}"")")
		Else
			_ArrayAdd($rREC, "Send(""{" & StringLower($rKEYLIST[$rPRESSED][1]) & "}"")")
		EndIf
	Else
		_ArrayAdd($rREC, "Send(""{" & $rKEYLIST[$rPRESSED][1] & " down}"")")
		_ArrayAdd($rREC, "Sleep(" & Round(TimerDiff($rTIMEPRESSED)) & ")")
		_ArrayAdd($rREC, "Send(""{" & $rKEYLIST[$rPRESSED][1] & " up}"")")
	EndIf

EndFunc   ;==>_addKeyboardData

#Region - GUI SelectLoop
While Not $rGO
	Sleep(100)
WEnd

While $rGO * Sleep(10)
	If WinGetTitle("[ACTIVE]") <> "B2F21C7751E37B8C196D9A2DC579C62DE28CC42B" Then
		If _IsPressed(01, $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "01")
			_addMouseData()

		ElseIf _IsPressed("02", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "02")
			_addMouseData()

		ElseIf _IsPressed("04", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "04")
			_addMouseData()

		ElseIf _IsPressed("05", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "05")
			_addKeyboardData()

		ElseIf _IsPressed("06", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "06")
			_addKeyboardData()

		ElseIf _IsPressed("08", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "08")
			_addKeyboardData()

		ElseIf _IsPressed("09", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "09")
			_addKeyboardData()

		ElseIf _IsPressed("0C", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "0C")
			_addKeyboardData()

		ElseIf _IsPressed("0D", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "0D")
			_addKeyboardData()

;~ 		ElseIf _IsPressed("10", $dll) Then
;~ 			_addRegData()
;~ 			$rPRESSED = _ArraySearch($rKEYLIST, "10")
;~ 			_addKeyboardData()

		ElseIf _IsPressed("11", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "11")
			_addKeyboardData()

		ElseIf _IsPressed("12", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "12")
			_addKeyboardData()

		ElseIf _IsPressed("13", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "13")
			_addKeyboardData()

		ElseIf _IsPressed("14", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "14")
			_addKeyboardData()

		ElseIf _IsPressed("1B", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "1B")
			_addKeyboardData()

		ElseIf _IsPressed("20", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "20")
			_addKeyboardData()

		ElseIf _IsPressed("21", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "21")
			_addKeyboardData()

		ElseIf _IsPressed("22", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "22")
			_addKeyboardData()

		ElseIf _IsPressed("23", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "23")
			_addKeyboardData()

		ElseIf _IsPressed("24", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "24")
			_addKeyboardData()

		ElseIf _IsPressed("25", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "25")
			_addKeyboardData()

		ElseIf _IsPressed("26", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "26")
			_addKeyboardData()

		ElseIf _IsPressed("27", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "27")
			_addKeyboardData()

		ElseIf _IsPressed("28", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "28")
			_addKeyboardData()

		ElseIf _IsPressed("29", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "29")
			_addKeyboardData()

		ElseIf _IsPressed("2A", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "2A")
			_addKeyboardData()

		ElseIf _IsPressed("2B", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "2B")
			_addKeyboardData()

		ElseIf _IsPressed("2C", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "2C")
			_addKeyboardData()

		ElseIf _IsPressed("2D", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "2D")
			_addKeyboardData()

		ElseIf _IsPressed("2E", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "2E")
			_addKeyboardData()

		ElseIf _IsPressed("30", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "30")
			_addKeyboardData()

		ElseIf _IsPressed("31", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "31")
			_addKeyboardData()

		ElseIf _IsPressed("32", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "32")
			_addKeyboardData()

		ElseIf _IsPressed("33", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "33")
			_addKeyboardData()

		ElseIf _IsPressed("34", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "34")
			_addKeyboardData()

		ElseIf _IsPressed("35", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "35")
			_addKeyboardData()

		ElseIf _IsPressed("36", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "36")
			_addKeyboardData()

		ElseIf _IsPressed("37", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "37")
			_addKeyboardData()

		ElseIf _IsPressed("38", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "38")
			_addKeyboardData()

		ElseIf _IsPressed("39", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "39")
			_addKeyboardData()

		ElseIf _IsPressed("41", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "41")
			_addKeyboardData()

		ElseIf _IsPressed("42", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "42")
			_addKeyboardData()

		ElseIf _IsPressed("43", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "43")
			_addKeyboardData()

		ElseIf _IsPressed("44", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "44")
			_addKeyboardData()

		ElseIf _IsPressed("45", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "45")
			_addKeyboardData()

		ElseIf _IsPressed("46", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "46")
			_addKeyboardData()

		ElseIf _IsPressed("47", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "47")
			_addKeyboardData()

		ElseIf _IsPressed("48", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "48")
			_addKeyboardData()

		ElseIf _IsPressed("49", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "49")
			_addKeyboardData()

		ElseIf _IsPressed("4A", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "4A")
			_addKeyboardData()

		ElseIf _IsPressed("4B", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "4B")
			_addKeyboardData()

		ElseIf _IsPressed("4C", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "4C")
			_addKeyboardData()

		ElseIf _IsPressed("4D", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "4D")
			_addKeyboardData()

		ElseIf _IsPressed("4E", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "4E")
			_addKeyboardData()

		ElseIf _IsPressed("4F", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "4F")
			_addKeyboardData()

		ElseIf _IsPressed("50", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "50")
			_addKeyboardData()

		ElseIf _IsPressed("51", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "51")
			_addKeyboardData()

		ElseIf _IsPressed("52", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "52")
			_addKeyboardData()

		ElseIf _IsPressed("53", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "53")
			_addKeyboardData()

		ElseIf _IsPressed("54", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "54")
			_addKeyboardData()

		ElseIf _IsPressed("55", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "55")
			_addKeyboardData()

		ElseIf _IsPressed("56", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "56")
			_addKeyboardData()

		ElseIf _IsPressed("57", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "57")
			_addKeyboardData()

		ElseIf _IsPressed("58", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "58")
			_addKeyboardData()

		ElseIf _IsPressed("59", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "59")
			_addKeyboardData()

		ElseIf _IsPressed("5A", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "5A")
			_addKeyboardData()

		ElseIf _IsPressed("5B", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "5B")
			_addKeyboardData()

		ElseIf _IsPressed("5C", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "5C")
			_addKeyboardData()

		ElseIf _IsPressed("60", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "60")
			_addKeyboardData()

		ElseIf _IsPressed("61", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "61")
			_addKeyboardData()

		ElseIf _IsPressed("62", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "62")
			_addKeyboardData()

		ElseIf _IsPressed("63", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "63")
			_addKeyboardData()

		ElseIf _IsPressed("64", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "64")
			_addKeyboardData()

		ElseIf _IsPressed("65", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "65")
			_addKeyboardData()

		ElseIf _IsPressed("66", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "66")
			_addKeyboardData()

		ElseIf _IsPressed("67", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "67")
			_addKeyboardData()

		ElseIf _IsPressed("68", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "68")
			_addKeyboardData()

		ElseIf _IsPressed("69", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "69")
			_addKeyboardData()

		ElseIf _IsPressed("6A", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "6A")
			_addKeyboardData()

		ElseIf _IsPressed("6B", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "6B")
			_addKeyboardData()

		ElseIf _IsPressed("6C", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "6C")
			_addKeyboardData()

		ElseIf _IsPressed("6D", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "6D")
			_addKeyboardData()

		ElseIf _IsPressed("6E", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "6E")
			_addKeyboardData()

		ElseIf _IsPressed("6F", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "6F")
			_addKeyboardData()

		ElseIf _IsPressed("70", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "70")
			_addKeyboardData()

		ElseIf _IsPressed("71", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "71")
			_addKeyboardData()

		ElseIf _IsPressed("72", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "72")
			_addKeyboardData()

		ElseIf _IsPressed("73", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "73")
			_addKeyboardData()

		ElseIf _IsPressed("74", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "74")
			_addKeyboardData()

		ElseIf _IsPressed("75", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "75")
			_addKeyboardData()

		ElseIf _IsPressed("76", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "76")
			_addKeyboardData()

		ElseIf _IsPressed("77", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "77")
			_addKeyboardData()

		ElseIf _IsPressed("78", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "78")
			_addKeyboardData()

		ElseIf _IsPressed("79", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "79")
			_addKeyboardData()

		ElseIf _IsPressed("7A", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "7A")
			_addKeyboardData()

		ElseIf _IsPressed("7B", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "7B")
			_addKeyboardData()

		ElseIf _IsPressed("7C", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "7C")
			_addKeyboardData()

		ElseIf _IsPressed("80", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "80")
			_addKeyboardData()

		ElseIf _IsPressed("90", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "90")
			_addKeyboardData()

		ElseIf _IsPressed("91", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "91")
			_addKeyboardData()

;~ 		ElseIf _IsPressed("A0", $dll) Then
;~ 			_addRegData()
;~ 			$rPRESSED = _ArraySearch($rKEYLIST, "A0")
;~ 			_addKeyboardData()

;~ 		ElseIf _IsPressed("A1", $dll) Then
;~ 			_addRegData()
;~ 			$rPRESSED = _ArraySearch($rKEYLIST, "A1")
;~ 			_addKeyboardData()

		ElseIf _IsPressed("A2", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "A2")
			_addKeyboardData()

		ElseIf _IsPressed("A3", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "A3")
			_addKeyboardData()

		ElseIf _IsPressed("A4", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "A4")
			_addKeyboardData()

		ElseIf _IsPressed("A5", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "A5")
			_addKeyboardData()

		ElseIf _IsPressed("BA", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "BA")
			_addKeyboardData()

		ElseIf _IsPressed("BB", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "BB")
			_addKeyboardData()

		ElseIf _IsPressed("BC", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "BC")
			_addKeyboardData()

		ElseIf _IsPressed("BD", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "BD")
			_addKeyboardData()

		ElseIf _IsPressed("BE", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "BE")
			_addKeyboardData()

		ElseIf _IsPressed("BF", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "BF")
			_addKeyboardData()

		ElseIf _IsPressed("C0", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "C0")
			_addKeyboardData()

		ElseIf _IsPressed("DB", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "DB")
			_addKeyboardData()

		ElseIf _IsPressed("DC", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "DC")
			_addKeyboardData()

		ElseIf _IsPressed("DD", $dll) Then
			_addRegData()
			$rPRESSED = _ArraySearch($rKEYLIST, "DD")
			_addKeyboardData()


		EndIf
	EndIf
WEnd
#EndRegion - GUI SelectLoop

DllClose($dll)
