GraaF Posted September 4, 2016 Share Posted September 4, 2016 So i got this GUI, which has a button in form of a picture, now i would like that incase i mouseover the button, it changes to another picture, to get that hover effect. #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("Form1", 294, 265, 665, 290) $Pic1 = GUICtrlCreatePic("GUI\picture1.bmp", 48, 144, 193, 97) $Label1 = GUICtrlCreateLabel("Standard text label..", 96, 16, 98, 17) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd To clairfy: Whenever i mouseover $pic1 i would like $pic1 to change from "picture1" to "picture2" and once i remove my mouse i would like to switch back to "picture1" I've been looking for something like this, but have been unable to find anything useful. Link to comment Share on other sites More sharing options...
BugFix Posted September 4, 2016 Share Posted September 4, 2016 Try this: #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("Form1", 294, 265, 665, 290) $Pic1 = GUICtrlCreatePic("GUI\picture1.bmp", 48, 144, 193, 97) $Label1 = GUICtrlCreateLabel("Standard text label..", 96, 16, 98, 17) GUISetState(@SW_SHOW) Global $fHover = False While 1 $nMsg = GUIGetMsg() $aInfo = GUIGetCursorInfo($Form1) If Not @error Then $idHover = $aInfo[4] If $idHover = $Pic1 Then GUICtrlSetImage($Pic1, 'THE_OTHER.BMP') $fHover = True Else If $fHover Then $fHover = False GUICtrlSetImage($Pic1, 'GUI\picture1.bmp') EndIf EndIf Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Best Regards BugFix Link to comment Share on other sites More sharing options...
InunoTaishou Posted September 4, 2016 Share Posted September 4, 2016 Instead of tracking the mouse over an image you could set an image list for a button. expandcollapse popup#include <GDIPlus.au3> #include <GUIConstants.au3> #include <GuiButton.au3> #include <GuiImageList.au3> HotKeySet("{F1}", ToggleDisable) _GDIPlus_Startup() ;~ Global $hImageListExample = CreateImageListFromMemory(Normal(), Hot(), Pressed(), Disabled()) Global $hImageListExample = CreateImageListFromImages(@ScriptDir & "\Normal.jpg", @ScriptDir & "\Hot.jpg", @ScriptDir & "\Pressed.jpg", @ScriptDir & "\Disabled.jpg") Global $hMain = GUICreate("Example", 200, 100) Global $btnExample = GUICtrlCreateButton("", 68, 10, 64, 64) GUICtrlCreateLabel("Press F1 to enable/disable the button", 10, 80) _GUICtrlButton_SetImageList(GUICtrlGetHandle($btnExample), $hImageListExample, 4) GUISetState(@SW_SHOW, $hMain) While (True) Switch (GUIGetMsg()) Case $GUI_EVENT_CLOSE _GDIPlus_Shutdown() _GUIImageList_Destroy($hImageListExample) Exit 0 Case $btnExample MsgBox("", "Pressed", "Button pressed") EndSwitch WEnd Func ToggleDisable() Local Static $bEnable = True $bEnable = Not $bEnable GUICtrlSetState($btnExample, ($bEnable ? $GUI_ENABLE : $GUI_DISABLE)) EndFunc Func CreateImageListFromImages($sNormal, $sHot = "", $sPresed = "", $sDisabled = "") Local $hTmpBitmap = _GDIPlus_BitmapCreateFromFile($sNormal) If (@error) Then Return SetError(2, 0, 0) Local $hListReturn = _GUIImageList_Create(_GDIPlus_ImageGetWidth($hTmpBitmap), _GDIPlus_ImageGetHeight($hTmpBitmap)) If ($hListReturn = 0) Then Return SetError(1, _GDIPlus_BitmapDispose($hTmpBitmap), ConsoleWrite("[Error] Could not create image list." & @CRLF)) Local $hBitmapNormal = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hTmpBitmap) Local $hBitmapHot = Null Local $hBitmapPressed = Null Local $hBitmapDisabled = Null _GDIPlus_BitmapDispose($hTmpBitmap) If ($sHot = "") Then $hBitmapHot = $hBitmapNormal Else $hTmpBitmap = _GDIPlus_BitmapCreateFromFile($sHot) $hBitmapHot = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hTmpBitmap) _GDIPlus_BitmapDispose($hTmpBitmap) EndIf If ($sPresed = "") Then $hBitmapPressed = $hBitmapNormal Else $hTmpBitmap = _GDIPlus_BitmapCreateFromFile($sPresed) $hBitmapPressed = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hTmpBitmap) _GDIPlus_BitmapDispose($hTmpBitmap) EndIf If ($sDisabled = "") Then $hBitmapDisabled = $hBitmapNormal Else $hTmpBitmap = _GDIPlus_BitmapCreateFromFile($sDisabled) $hBitmapDisabled = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hTmpBitmap) _GDIPlus_BitmapDispose($hTmpBitmap) EndIf If (_GUIImageList_Add($hListReturn, $hBitmapNormal) = -1) Then ConsoleWrite("[Error] Error adding normal bitmap to list." & @CRLF) If (_GUIImageList_Add($hListReturn, $hBitmapHot) = -1) Then ConsoleWrite("[Error] Error adding hot bitmap to list." & @CRLF) If (_GUIImageList_Add($hListReturn, $hBitmapPressed) = -1) Then ConsoleWrite("[Error] Error adding pressed bitmap to list." & @CRLF) If (_GUIImageList_Add($hListReturn, $hBitmapDisabled) = -1) Then ConsoleWrite("[Error] Error adding disabled bitmap to list." & @CRLF) For $i = 4 To 6 _GUIImageList_Add($hListReturn, $hBitmapNormal) Next _WinAPI_DeleteObject($hBitmapNormal) _WinAPI_DeleteObject($hBitmapHot) _WinAPI_DeleteObject($hBitmapPressed) _WinAPI_DeleteObject($hBitmapDisabled) Return $hListReturn EndFunc Func CreateImageListFromMemory($xStringNormal, $xStringHot = "", $xStringPressed = "", $xStringDisabled = "") Local $hTmpBitmap = _GDIPlus_BitmapCreateFromMemory($xStringNormal) If (@error) Then Return SetError(2, 0, 0) Local $hListReturn = _GUIImageList_Create(_GDIPlus_ImageGetWidth($hTmpBitmap), _GDIPlus_ImageGetHeight($hTmpBitmap)) If ($hListReturn = 0) Then Return SetError(1, _GDIPlus_BitmapDispose($hTmpBitmap), ConsoleWrite("[Error] Could not create image list." & @CRLF)) Local $hBitmapNormal = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hTmpBitmap) Local $hBitmapHot = _GDIPlus_BitmapCreateFromMemory(($xStringHot = "" ? $xStringNormal : $xStringHot), True) Local $hBitmapPressed = _GDIPlus_BitmapCreateFromMemory(($xStringPressed = "" ? $xStringNormal : $xStringPressed), True) Local $hBitmapDisabled = _GDIPlus_BitmapCreateFromMemory(($xStringDisabled = "" ? $xStringNormal : $xStringDisabled), True) _GDIPlus_BitmapDispose($hTmpBitmap) If (_GUIImageList_Add($hListReturn, $hBitmapNormal) = -1) Then ConsoleWrite("[Error] Error adding normal bitmap to list." & @CRLF) If (_GUIImageList_Add($hListReturn, $hBitmapHot) = -1) Then ConsoleWrite("[Error] Error adding hot bitmap to list." & @CRLF) If (_GUIImageList_Add($hListReturn, $hBitmapPressed) = -1) Then ConsoleWrite("[Error] Error adding pressed bitmap to list." & @CRLF) If (_GUIImageList_Add($hListReturn, $hBitmapDisabled) = -1) Then ConsoleWrite("[Error] Error adding disabled bitmap to list." & @CRLF) For $i = 4 To 6 _GUIImageList_Add($hListReturn, $hBitmapNormal) Next _WinAPI_DeleteObject($hBitmapNormal) _WinAPI_DeleteObject($hBitmapHot) _WinAPI_DeleteObject($hBitmapPressed) _WinAPI_DeleteObject($hBitmapDisabled) Return $hListReturn EndFunc ;==>CreateImageListFromMemory ;Code below was generated by: 'File to Base64 String' Code Generator v1.20 Build 2015-01-20 Func Disabled() Local $Disabled $Disabled &= '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' $Disabled &= 'KuBHjqAAl7jE6BmA5k8AQUDPCcIt7SgAs+eofc3HqvMAWyD0Hd+5+h8EIL6ARAhm2E29ANbbToKhNxQeAMvIXQOh/LsaAAA45kW4Y7uLAHqxslvGVFbhAeAh/BhQfVleWQA3IZixoyusFRBwseMoQVMGYDkAseg6UDXCcJsAe0W1nTlD7m4APVeBWyCP0r2A27t9DuQXUKJdAA/NsJt7qjT4ACoTcVHuo4C8AAdD+XY0HvCsACbez21mzlFzAHRxwHArZBHFAFT1Y/3N9DhxBCC2QBM//9k=' $Disabled = _WinAPI_Base64Decode($Disabled) Local $tSource = DllStructCreate('byte[' & BinaryLen($Disabled) & ']') DllStructSetData($tSource, 1, $Disabled) Local $tDecompress _WinAPI_LZNTDecompress($tSource, $tDecompress, 2019) $tSource = 0 Local Const $bString = Binary(DllStructGetData($tDecompress, 1)) Return $bString EndFunc ;==>Disabled Func Hot() Local $Hot $Hot &= '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' $Hot &= 'HZ7xIqUA8iXKOU5KKlUAR3A/5Mu4HfsAjDCyveoN13MAbVIYnwybRxkAoRWE5v1/Gj4AiTcMVGIw5Z4AWI9uxyWWzuEA77Iv5Ze60qsADME6GQg5qNMAudAVt7e9PhYA82xWmF8MG7IAJphSAZB+/wAAHT9BqMeMuN4At3pcZLhXyOsAaIZT/u1BbOUAmlOTtGpOZ8QAfFmzH4/HC60ALQzGp5VaYiwAQM7dGI4wOqQAcIzNGSv9BaUAqGho6Cjho6MQhWClgWMlaDFCANaGigyLjk0zAOV5e87znZSuAPxsvJWBC6qqAJaarppaapiWAGp5lKSxOAysAKwyIIOMEAihAFvHI5jg5po4AGQrN/J3GVftABrxeLR7jWYyAAeKdCfcpZPFATAT1Az9DfTvlgBz95aGI7zeXQCLsGHMRR38fQAZqdanmMzxqwDuEk8U8rwbigAUtF3kWK+RrgBRuclWpUarpwCMarr3GuGFlQDok4Xc21R2JgDDDrQmWEVhPgDfxr+q58q8VQBPuWna6WqNYQC+xL5gMlWpUQD2vp4/8W+h0wAs3tkJBvN5tgCtcM4mdZu6UgCawH2/xq0j6ACF9lb1vex74wCwjcweP27jbQCTNfF4Tkeh9ADIuh/v0wnt7gAdC7aF0XvHaACHuUA8xWlWPAB48wVp/b24bQB7gtUNztkolgCaUfyVh3RxowAMUkUrXt3m5ABcWv7GW1lMUgCKOH/dY1L6WAD0XxqwIXnr6wDorfRTVtbMtAD0lOpeaZzkqgCjGrnBoqci9QCCB8rwxg3nOwAgWauSeSrlvADuK263LIlnWQACUlIoJkqJCQDJXdV7sT6V0wDnieu7szGg5UDaux4fw9EALpIAUMtOJ2Zo0D4A5+yUOJuJ49sAkSXm8Isl+kUA/HH0ZaVWGRUABHQyEHJm07AA1JZWVl0+J3MAbFFYnxObsmEghNIBlP5wIgPUAOgJuGKjEa8rAPFUO5IHutqRAmNAE2Xoq1KqPQAsdHy9JPyOFwje2XVBE6scM4kIjZuEQRO6/wCNACPVDOyd7XvZABe3yR/9dm9uBONuVRO66H6YUQBvcOhdtC6J3gA7PB3KEeY3sgCx48eYK0/YLwD2u/WqG522YQA1NMP5K33I4wBGXUYo4pWvbgDzci4rfWMtrACmKQUcPFRqXgCbhcKK3UU1dQB0y09JTqXmmQDOSqo/roMbOQXxEvH3EqeR+SLnAL0uSW+3pIloAEkC0dEoJknkACfCruq55sc/ACrp88T13dumADQcq7Jh/D8XAG6MySEGWnE7ADNGgatJzpS4CKOJ4QAT4vCLLQEFEx1VT2MhHqag07DpmWYFExgFEwDv+OgepzAJmABio1WBCsCEZwDK/FEO44Hu9gCUEV8iXN4x0QBqVH2n4OPtOgD2P6Lr2y6g3gBvNtVlhjExtABwilNYT7fxpAB6oc2Pvi87JgD2/kZqUv7dxgDe+a5+E5HIHyBLrocKbTAmtWcAC6F3ns0PcocALxUqx3jKCvcA8jcj3Te1zSgAKCORLSkgShoAFATJNIT4Vd0AVz8Ttn5VHb4AfXG91dumdQcALmC+XsHYIu0Q0RkkIAMhNWk5ANKvFHE8O2oUALvd0WW/yr5EAOjJSqw6qp7GAEI6Mw/avTMsAM7Ky6fE7m2KABsTYnN4TDCaAEA9+s/50D1PQJ0AS8MVHNFvKwACFYEIy5Y4ogAdwxSXi0RrHQDyNc5Yxkq1KgCjsdPcGh17HQAwuvbIScTebQCqzwxic2hEMwAawnJ/n8al2QDFPFEG2YUu1wBkWbcEq+VejACUqsMiiHsZCADo7j9q9My2bACshGN53NsWmACbE7rxxii8oAAfV+s6tA9T50BA1JwwUerhYf8A2Q==' $Hot = _WinAPI_Base64Decode($Hot) Local $tSource = DllStructCreate('byte[' & BinaryLen($Hot) & ']') DllStructSetData($tSource, 1, $Hot) Local $tDecompress _WinAPI_LZNTDecompress($tSource, $tDecompress, 3117) $tSource = 0 Local Const $bString = Binary(DllStructGetData($tDecompress, 1)) Return $bString EndFunc ;==>Hot Func Normal() Local $Normal $Normal &= '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' $Normal &= 'AN6J6h1CMsDFABfKfE/jfy/2AIptXa9/OymkAMliISP/AN7pADxd3/MVB78+AGaOUmlOzby9AMfoB3niTy/sAKKUOivzzy95AP1g/UeJPjZ/AGV1OPHsR7CWACwgt2bY8UReAEABXQo42saGALRY0LqcUTY2AIYwWNHgFsrNAGxVSlhes2r1EKe1dQNEItQaxQDsDgQRaCsJIwBr2lrha0rl+wCvakjCyBNheQAYJYFLik+VpgDjyBI9dDQCrwBJdlXYkduH7QA7eBXL67Q35ACfixW4VvjxaQDbwKU7P3hbyQCiwprBMgo+LAB5C6B1H27ikABRq0JxhyGyTwB16U6f1AMyBABSmyUd1/RZbgD9oWspbMuGoQAyCDmByF0DoQD7djXtZowzAwDWzdIO69ZagwBPtzTcSMWTDgDv89eqC4HOzwDAZBj4n+vj4QAqK3Ljw5HXRgAURp9QkycnTwC5u3FBaXVJcgATeG7wc07biABdYxuSiZKGkgDiv52n/EHqpAB0Iro2VzTJ2AAew2grrGTzkQDmYxJGbWnaxQDqr6F9SqlLVACJFiNYe/fcWwCzbHk7tyAArAAkkaxpc42NCwBc0zI2l7zY0QDiVy3dG6ZWcghIjRhQNgWbI48AlcbjwDMBqewAK57Vas/Nv9AAy3Dt3DntwC4AWVutyZ5/oZYA4Vu4cXHmf4AAlmztnLjEWdMAQGyDD4rqLQIANB9j1PsPVHQAWiiAYknye28ASzT2nxlgJZcRQUNnyHVxIlt4bQAEyltpkNQuQQAHMaC6B0P27ARo/VIRz5B3XosAag0+M0MSPdMADuv5INgc9PwABPb4t/UT4yoCMyAR0OjCiVPqABJk5On3N24oADUuqS5CU/j9As0BER2RiZGHbgBcVw9q4PcHqgCR0Iro2WzLJgBgew2grrOTzQDHmIxJGbWnawAK2yZNiNYeRACHFuzbHk7toAAVnLK2Npc42ADQts0zImF7zQCNHiVyzdG6JQDnZSxoyssIMAAWLAHFrjE8AwAwGpPQVz6q1QRfm7AP+i3cOJ0AuAXK61W5M9IAehgOHb9LeLgA8z15BLtn7OQAxaLNmqHyLD4AK6iyD0H27n0Ah6pKLRRlxiQAm+X238z5DqsgtP6eGVD2EFVIAFKlVKVUpFd4AGz0ydtpsMBJCOg+SzQR9WqMJ0gYke4wEYrqMBEjABYt0o7r0IwGAH52BnnkTaLeADJjNy48OXswAKJ06oSZOTp9AM3bihFKqsuQAJf+fubtxXo3AD7nl56WseOrACwwwEeOBxZ2ADyDMBqx6DpWAPqtVfm3+ltvAKLdw4m/kF9NAGq1JnpAxgOHEG/S3iRQDA4JfgDP2cmLRZs1QxDkXHxXMFqDu3cAPsPVLRqKMuMAEk3yntv5nyEA1X6f08MqMWUA3zHtv5nyHMowqkKUqoJkQlFnpgBJGmwlC5BR8wJRUC+/27GjtaoAKJxiR/J7r0UANQafGZBliFkAKO69Z7P2fbwAVbEyYA+SccgAaiyD+lft3b0Ah65UaijLj1sBQWfmfIdc9P6fABlRiSb5j29BANeZ8hutJUUgAEoVUpVSl//Z' $Normal = _WinAPI_Base64Decode($Normal) Local $tSource = DllStructCreate('byte[' & BinaryLen($Normal) & ']') DllStructSetData($tSource, 1, $Normal) Local $tDecompress _WinAPI_LZNTDecompress($tSource, $tDecompress, 2914) $tSource = 0 Local Const $bString = Binary(DllStructGetData($tDecompress, 1)) Return $bString EndFunc ;==>Normal Func Pressed() Local $Pressed $Pressed &= 'YbsA/9j/4QAYRXgAaWYAAElJKgAECAAHAP/sABFEAHVja3kAAQAEBQA8PABI4QMvaHQAdHA6Ly9ucy4AYWRvYmUuY28AbS94YXAvMS4AMC8APD94cGEAY2tldCBiZWcAaW49Iu+7vyIAIGlkPSJXNU0AME1wQ2VoaUgAenJlU3pOVGMAemtjOWQiPz4AIDx4OnhtcG0AZXRhIHhtbG6gczp4PSICXDoACxEBFi8iIAIidGs9BCJBARggWE1QIABDb3JlIDUuNgAtYzExMSA3OQAuMTU4MzI1LAAgMjAxNS8wOQAvMTAtMDE6MaAwOjIwIAQAIgBtgHJkZjpSREYEawmABj0iBGp3d3cuAHczLm9yZy8xADk5OS8wMi8yBDItgBAtc3ludEBheC1ucyOFIEQAZXNjcmlwdGkIb24ggQdhYm91mHQ9IoBUA2FtcAYrk5KVCBRNTRsVbW2GFjBzdFJlh1eSFnNUAHlwZS9SZXNvUHVyY2UAFyMBHnAAOkNyZWF0b3IQVG9vbIWiUGhvAHRvc2hvcCBDAkNCTSAoV2luZBBvd3MpwgxNTToASW5zdGFuY2UQSUQ9IkAELmlpAGQ6RUJCQjk2ADRCNzJBMjExAEU2QkExRUNGADMxQzJERUU3BENExQ5Eb2N1bahlbnTFDmTHDkPWDgOBg0MPZXJpdmVkIEZyb20ggj06aa3XIjnXIsMOZNciQdYO+i8AIy8Me4UEQJCBAoauUwADBr9lbkC8coC2/4juAA6CWgBkwIDQAAH/2wCEAAYEAAQEBQQGBQUGBAkGwAALCAYGCAALDAoKCwoKDAQQDAIAEAwODxAADw4MExMUFBOAExwbGxscHwYAAAEHBwcNDA0YABAQGBoVERUaA0cGJAD/wAARCAAAQABAAwERAAIAEQEDEQH/xACAjgAAAwEBASiAAAAHCAQDBQEACAICA8oCBAYHAUACBQMQAALBAAMQBAEDBeICAQIDAAQFABEhBgcxAEESMkITUXGBACLB8HIjYZEUCBUWEcADBAQDBwIEZQkBAAMRMQIABiFREgRBYQUA8IHBIqLiE5EA4VJicbHRof8I2gAMAAUCEQMRAAA/AKXwIRgQAIwISf5w5xp9AKEElisMiT7oAJk/ySaOlEjjADDuDmGlIOaIAHp6m0yDTG2bAGDvCHnhBgevAJD9cz3DGJC7AM9pwE1n4N5yAINzww7d3BKIAPcUS+NNUNkqANWqj/b5QOo7APUd8elz2wdqAEvMiLJmPx9vAPSwy9qwM06MAEKTKMCEYEIwAUAPk7zhzlT7SgAJLDYJEm3PMgDlLLoyUSMNGQCBzDSkHNEPTwBTaZBplbFsHYDZDzwgwPX7wA4AiQu89pwE0lsAiPiK8ch3eS4At0kmjsUcpe4AFwcky1MpPk8AHGzZlnYnN3MA0++JvcFwNdMAmw22AXYeWngAUjM8shxSzTQAazEyW/mfhm4AGx7j/wCg2+YAR7A8okjdCfkAaKXPMKzD2Z8Aof8AB+pXty4AOjfUfC9D5ocAdWP9zHYZeZ0AJiJJrcG84w4A6YY9v7gkWLcAFCoEE50WsQAA6/6Sj3Dv1HcEAiUqHb3Ze1YGIGnNiFplwiu+cQDnKDacMtg2/ACLNuWVcpphkwAlErD1MNQZSAD0qenVuwaZ2wAWwd2Q88IMCQAPz9uZ7hmF3gB7TgJpM8Q8QQB35Cuz3a7PLAB2COUvXVzkmQBqpSfJ442bMgDMxP7v2++JrQDBcLfT2/jbgQFjHD4DwSzTRrMAEyVgWy2W+1UAvp7dbqdKWhoAVBHBTxjJVUcAYfye+KcffrcAazXWdVVUyugAAQwC6VlHSVsASzUlXClRSzoAGOaCRQyOjDIAKsp0IONW3KoAioVUmFQkVkgAipH5l4cuGw4A4i/7fMpsDSgAaGZGb5aOUnNAVWcft4+XQSZeALb9uXFRv6PhAHofNDHKsdpjAMFz3mdJiJJtAHBvN8O66aKwAN/l' $Pressed &= 'WPckK5RTAByVatVHqA6CAFA9Sjr1H0xEAC57ZO0qLzIiAMnh+P2y+iYZAcEmyYhiYSa5zwCcYtpxS7esDgCybllQfPPoywBGjjMMQdDKygBzVe3U9gZpawDbB3ZDzwgwJAA/P25/Qcl3ngDTgJpNcO8R3AB5Du011ukzrQCGnnP/AGFWWwDKaonOUjRKxwAz5N5gu56Z/QBxNLiuCjpzYQC2wPlI8o4UiQBH/AlmWjWYmQArBtttoLZQQQBvt8CUtFSoIwCCCMeKqo6ADABTjz1btZrrOgCqqmV0AILTjwAllGBC4VtFSSBdSTUdZMAmUIYAOeCQBkdGGRUAYHqCMbtuVUUAQqpMKhIrBEUASNzJw5c9h3MAF+sJlbb7Sq8ADUxk/LRTeQ8ABXYageWXg/0AdOuWdwW5cTcEv29yExwrHLxCCEHmTbAmvcIc4wBNuynjsV+lWAB3JEuUUjZKtQBqo6r2+Qe5ewD1HfKHXNbFWwBCXWRFk+n7cwT6plETa683cI0AJu+le9WSJIMAcsCksBkq1agA9j9vkHtb8HsAZa2zc1Wzq+IAdMWD6f45Zj4AiHmdWImp544AuRNx8cbkkYQATmn8/hu1omwA08vE5NofRKkA2P4OmLF6x0gAZ6kwMRGEaKwAdsQUo24aCrMANq7qsu6bJBcAmzziejnH2ZEAx6o3X2svcYoAW3+xd2rpadEACof95jkujTUACoRC9fCa2RgQELLdLnEoouNxQqhxKDJPUSFwKHMA/A749WGK3awAUUDVVVILBMMAEqP+XeX7xyAA3ZLTaUmjsCQAoShoEBMtVKQA+KSSKuZZifQAJ2++Ljt+3m8Ap7fyOQLsPNUAcKRkPE+C57oA6azASTn4N4MAodpQx7gv6LIA7mmQ/DDoyUQAjjIqpGhlYHIAdh09K9y0KucAuc7sllkwYEwA/n7ch3nIMssAOnEzTjxDEwkAQc4cIwbvppIA92ONItywJ+wAmirVoo0Rj0EAIB6WP2OmomMAbNzHZ1Bp0xYAD6ef8ZjvS7wAzqxE1PnHPI0AuPjjcUhEcn8AxGf4rtaZc18ALwOR/U+mROwAfx0xYnWOjscAUmRiNU6Kx2wAQUo24aCrM2sA7os257JT3mwA84no6gZgjRkAHHqjdfay9x8Axild9sXdq6UgpwQqHaKEE9d1ALrbrTbqi5XKgKEpaGlQyVEiE4D1kANSdBjxRxMAJIAiVH/LnLsAeeQ7xHarXHMAR2JJQlvt6AkAlqZSfFJJFXMALOxP6IOn31wAXJb9vtdObLgA4QXYearhSMgAcszxXPddNZgACSdPB/BtPtEAgjv1/jSbc8wIucUWMF/DVVIzAA0pBydx09K6AGZaEXPc53ZLECyYMD1xE+ADLACzpxM04sQ1MACMCEYEJO84cACFPu2ne+2JFgAdyQLnJEMglRBoPa30ACe/Q9gAiZWxcx2lQacATFk+n7ZjvS4A8zqxE1P/ABsA8kbh453G58FI2omkoBOpM6ETIAgfTIkQJywus9EAmepMz80I0VcAaYKUbcNBXq8ALXLd65FvMdsALZFNHY0mCW5AtqAtLUSsAQ4zAPKRs8kQZ+PQAGuZKvQOgNdOEmgpDls6oSE7eD8Ag6n2hBHfb9EApPuiZP8AHHoAOlEjjIohGYYAlIOTuP7V0zIA0Gua5zvCWWQAwYHr5n9ch3mExgDTIQxDkwhGagCc48HU+64JbwD2GJYtyRLnNABLkq1iqNA3bwCUDRW79D2ymQDbFznaEMvGLACZfr9uSXeZ1QCImuvCHB9NswCp0vl8RKjdMwin6rpxB4xxkZgAaUg5PIP7V0wAy+lzXPVvKi0ANYMD618zyyEA3nGApGWdOJkQpvYh6WIHf//Z' $Pressed = _WinAPI_Base64Decode($Pressed) Local $tSource = DllStructCreate('byte[' & BinaryLen($Pressed) & ']') DllStructSetData($tSource, 1, $Pressed) Local $tDecompress _WinAPI_LZNTDecompress($tSource, $tDecompress, 3140) $tSource = 0 Local Const $bString = Binary(DllStructGetData($tDecompress, 1)) Return $bString EndFunc ;==>Pressed Func _WinAPI_Base64Decode($sB64String) Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "") Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]") $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "") Return DllStructGetData($bBuffer, 1) EndFunc ;==>_WinAPI_Base64Decode Func _WinAPI_LZNTDecompress(ByRef $tInput, ByRef $tOutput, $iBufferSize) $tOutput = DllStructCreate("byte[" & $iBufferSize & "]") If @error Then Return SetError(1, 0, 0) Local $aRet = DllCall("ntdll.dll", "uint", "RtlDecompressBuffer", "ushort", 0x0002, "struct*", $tOutput, "ulong", $iBufferSize, "struct*", $tInput, "ulong", DllStructGetSize($tInput), "ulong*", 0) If @error Then Return SetError(2, 0, 0) If $aRet[0] Then Return SetError(3, $aRet[0], 0) Return $aRet[6] EndFunc ;==>_WinAPI_LZNTDecompress (CreateImageListFromMemory is from a script I wrote a while back, I added the FromImages in case it was too complicated or you didn't want to use a Base64 string) (You can turn your images to a base64 string using Uez's program from here) Ebola57 1 Link to comment Share on other sites More sharing options...
Terenz Posted September 4, 2016 Share Posted September 4, 2016 (edited) #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> GUICreate("", 100, 200, -1, -1) $iPIC1 = GUICtrlCreatePic(@ProgramFilesDir & "\AutoIt3\Examples\GUI\merlin.gif", 0, 0, 100, 100) $iPIC2 = GUICtrlCreatePic(@ProgramFilesDir & "\AutoIt3\Examples\GUI\logo4.gif", 0, 100, 100, 100) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $GUI_EVENT_MOUSEMOVE Local $aCursor = GUIGetCursorInfo() _ImageHover($iPIC1, @ProgramFilesDir & "\AutoIt3\Examples\GUI\logo4.gif", @ProgramFilesDir & "\AutoIt3\Examples\GUI\merlin.gif", $aCursor) _ImageHover($iPIC2, @ProgramFilesDir & "\AutoIt3\Examples\GUI\merlin.gif", @ProgramFilesDir & "\AutoIt3\Examples\GUI\logo4.gif", $aCursor) EndSwitch WEnd Func _ImageHover($iCtrl, $iIMG_1, $i_IMG2, ByRef $aCursor) If ($aCursor[4] = $iCtrl) Then GUICtrlSetImage($iCtrl, $iIMG_1) ElseIf ($aCursor[4] <> $iCtrl) Then GUICtrlSetImage($iCtrl, $i_IMG2) EndIf EndFunc ;==>_ImageHover Edited September 4, 2016 by Terenz Nothing is so strong as gentleness. Nothing is so gentle as real strength Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now