Here is a older script of mine using a UDF from @Großvater (in english = grandpa):
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=y
#AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GUICtrlPic.au3>
#include <Array.au3>
Global $aHoverBtn[5][7]
$aHoverBtn[0][1] = @ScriptDir & "\Pictures\Up.png"
$aHoverBtn[0][2] = @ScriptDir & "\Pictures\UpHovered.png"
$aHoverBtn[0][3] = @ScriptDir & "\Pictures\UpPressed.png"
$aHoverBtn[0][4] = @ScriptDir & "\Pictures\UpDisabled.png"
$aHoverBtn[0][5] = 0
$aHoverBtn[1][1] = @ScriptDir & "\Pictures\Down.png"
$aHoverBtn[1][2] = @ScriptDir & "\Pictures\DownHovered.png"
$aHoverBtn[1][3] = @ScriptDir & "\Pictures\DownPressed.png"
$aHoverBtn[1][4] = @ScriptDir & "\Pictures\DownDisabled.png"
$aHoverBtn[1][5] = 0
$aHoverBtn[2][1] = @ScriptDir & "\Pictures\Left.png"
$aHoverBtn[2][2] = @ScriptDir & "\Pictures\LeftHovered.png"
$aHoverBtn[2][3] = @ScriptDir & "\Pictures\LeftPressed.png"
$aHoverBtn[2][4] = @ScriptDir & "\Pictures\LeftDisabled.png"
$aHoverBtn[2][5] = 0
$aHoverBtn[3][1] = @ScriptDir & "\Pictures\Right.png"
$aHoverBtn[3][2] = @ScriptDir & "\Pictures\RightHovered.png"
$aHoverBtn[3][3] = @ScriptDir & "\Pictures\RightPressed.png"
$aHoverBtn[3][4] = @ScriptDir & "\Pictures\RightDisabled.png"
$aHoverBtn[3][5] = 0
$aHoverBtn[4][1] = @ScriptDir & "\Pictures\Exit.png"
$aHoverBtn[4][2] = @ScriptDir & "\Pictures\ExitHovered.png"
$aHoverBtn[4][3] = @ScriptDir & "\Pictures\ExitPressed.png"
$aHoverBtn[4][4] = @ScriptDir & "\Pictures\ExitDisabled.png"
$aHoverBtn[4][5] = 0
Global $nMsg, $aPos, $aInfo
Global $hGui = GUICreate("Hovered Ping-Buttons", 612, 369, 271, 235)
Global $sAutoItPath
If @Compiled Then
$sAutoItPath=RegRead64('HKLM\Software\AutoIt v3\AutoIt', 'InstallDir')&'\'
Else
$sAutoItPath= StringReplace(StringReplace(@AutoItExe, "_x64", ""), "autoit3.exe", "")&'\'
EndIf
Global $Background = _GUICtrlPic_Create($sAutoItPath & "Examples\GUI\msoobe.jpg", 0, 0, 612, 369, $SS_CENTERIMAGE, Default)
GUICtrlSetState(-1, $Gui_DISABLE)
Global $idTorus = _GUICtrlPic_Create($sAutoItPath & "Examples\GUI\Torus.png", 88, 8, 68, 71, $SS_CENTERIMAGE, Default)
$aHoverBtn[0][0] = _GUICtrlPic_Create($aHoverBtn[0][1], 460, 8, 48, 48, BitOR($SS_CENTERIMAGE, $SS_NOTIFY), Default) ;Up
$aHoverBtn[1][0] = _GUICtrlPic_Create($aHoverBtn[1][1], 460, 138, 48, 48, BitOR($SS_CENTERIMAGE, $SS_NOTIFY), Default) ;Down
$aHoverBtn[2][0] = _GUICtrlPic_Create($aHoverBtn[2][1], 400, 73, 48, 48, BitOR($SS_CENTERIMAGE, $SS_NOTIFY), Default) ;Left
$aHoverBtn[3][0] = _GUICtrlPic_Create($aHoverBtn[3][1], 520, 73, 48, 48, BitOR($SS_CENTERIMAGE, $SS_NOTIFY), Default) ;Right
$aHoverBtn[4][0] = _GUICtrlPic_Create($aHoverBtn[4][1], 540, 266, 48, 48, BitOR($SS_CENTERIMAGE, $SS_NOTIFY), Default) ;Exit
GUISetState()
While 1
_GuiCtrlPic_CheckHoverDisabled($hGui, $aHoverBtn) ;checken ob ein anderes Pic angezeigt werden muß und bei Bedarf anzeigen
$nMsg = GUIGetMsg()
$aPos = ControlGetPos($hGui, "", $idTorus)
Switch $nMsg
Case $Gui_EVENT_CLOSE
Exit
Case $aHoverBtn[0][0]
If _GuiCtrlPic_AnimButton($hGui, $aHoverBtn[0][0], $aHoverBtn[0][1],$aHoverBtn[0][2], $aHoverBtn[0][3]) Then $aPos[1] -= 5 ;nach oben
Case $aHoverBtn[1][0]
If _GuiCtrlPic_AnimButton($hGui, $aHoverBtn[1][0], $aHoverBtn[1][1],$aHoverBtn[1][2], $aHoverBtn[1][3]) Then $aPos[1] += 5 ;nach unten
Case $aHoverBtn[2][0]
If _GuiCtrlPic_AnimButton($hGui, $aHoverBtn[2][0], $aHoverBtn[2][1],$aHoverBtn[2][2], $aHoverBtn[2][3]) Then $aPos[0] -= 5 ;nach links
Case $aHoverBtn[3][0]
If _GuiCtrlPic_AnimButton($hGui, $aHoverBtn[3][0], $aHoverBtn[3][1],$aHoverBtn[3][2], $aHoverBtn[3][3]) Then $aPos[0] += 5 ;nach rechts
Case $aHoverBtn[4][0]
If _GuiCtrlPic_AnimButton($hGui, $aHoverBtn[4][0], $aHoverBtn[4][1],$aHoverBtn[4][2], $aHoverBtn[4][3]) Then Exit
Case $GUI_EVENT_PRIMARYDOWN
;hier noch DRAGen einfügen
EndSwitch
ControlMove($hGui, "", $idTorus, $aPos[0], $aPos[1])
WEnd
Func RegRead64($sKeyname, $sValue)
;Aus AutoUpdateIt.au3
Local $sRes = RegRead($sKeyname, $sValue)
If @error And @AutoItX64 Then
$sKeyname = StringReplace($sKeyname, "HKEY_LOCAL_MACHINE", "HKLM")
$sKeyname = StringReplace($sKeyname, "HKLM\SOFTWARE\", "HKLM\SOFTWARE\Wow6432Node\")
$sRes = RegRead($sKeyname, $sValue)
If @error Then
SetError(1)
Return ""
EndIf
EndIf
SetError(0)
Return $sRes
EndFunc ;==>RegRead64
just test it. You need also:
GUICtrlPic.au3
pictures.zip