#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include "GUICtrlOnHover.au3"
Opt("GUIOnEventMode", 1)
Global $hWnd="[CLASS:Chrome_WidgetWin_1]" ;MozillaWindowClass

$Form1 = GUICreate("Game Keyboard", 213, 129, -1, -1, -1, $WS_EX_TOPMOST)
$Button1 = GUICtrlCreateButton("Space", 8, 72, 91, 25)
GUICtrlSetOnEvent(-1, "_Space")
$Button2 = GUICtrlCreateButton("U", 40, 10, 27, 25)
;_GUICtrl_OnHoverRegister(-1, "_Hover_Func", "_Hover_Func")
;GUICtrlSetOnEvent(-1, "_Click_Func2")
$Button3 = GUICtrlCreateButton("D", 40, 40, 27, 25)
_GUICtrl_OnHoverRegister(-1, "_Hover_Func", "_Hover_Func")
$Button4 = GUICtrlCreateButton("L", 8, 40, 27, 25)
_GUICtrl_OnHoverRegister(-1, "_Hover_Func", "_Hover_Func")
$Button5 = GUICtrlCreateButton("R", 73, 40, 27, 25)
_GUICtrl_OnHoverRegister(-1, "_Hover_Func", "_Hover_Func")
$Checkbox1 = GUICtrlCreateCheckbox("Hover active", 112, 48, 81, 17)
GUICtrlSetState($Checkbox1, $GUI_CHECKED)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


GUISetOnEvent($GUI_EVENT_CLOSE, "hGUIClose")
_Click_Func2()
Func _Click_Func2()
Local $pos = GUIGetCursorInfo()
Local $hW
    $hW=WinGetHandle($hWnd)
    WinSetOnTop($hW,"",0)
    WinActivate($hW,"")
Switch $pos[4]
	Case $Button2
		Sleep(100)
		Send("{U}")
		Sleep(100)
EndSwitch
EndFunc

While 1
    Sleep(100)
WEnd

Func _Hover_Func($iCtrlID, $iParam)
		Local $sButton2_Action = "{UP DOWN}"
		Local $sButton3_Action = "{DOWN DOWN}"
		Local $sButton4_Action = "{LEFT DOWN}"
		Local $sButton5_Action = "{RIGHT DOWN}"
		
		If $iParam = 2 Then ;Indicates On *Leave* Hover process
			$sButton2_Action = "{UP UP}"
			$sButton3_Action = "{DOWN UP}"
			$sButton4_Action = "{LEFT UP}"
			$sButton5_Action = "{RIGHT UP}"
		EndIf
		
		Switch $iCtrlID
			Case $Button2
				Sleep(100)
				Send($sButton2_Action)
				Sleep(100)
			Case $Button3
				Sleep(100)
				Send($sButton3_Action)
				Sleep(100)
			Case $Button4
				Sleep(100)
				Send($sButton4_Action)
				Sleep(100)
			Case $Button5
				Sleep(100)
				Send($sButton5_Action)
				Sleep(100)
		EndSwitch
		
EndFunc

Func _Click_Func()
EndFunc

Func _Space()
    Local $hW
    $hW=WinGetHandle($hWnd)
    WinSetOnTop($hW,"",0)
    WinActivate($hW,"")
	Switch GUICtrlRead($Button1)
		Case 'Space'
			Sleep(100)
			Send("{SPACE DOWN}")
			Sleep(100)
			GUICtrlSetData($Button1, 'Stop!')
		Case 'Stop!'
			Sleep(100)
			Send("{SPACE UP}")
			Sleep(100)
			GUICtrlSetData($Button1, 'Space')
	EndSwitch
EndFunc

Func hGUIClose()
    Exit
EndFunc