NoraTheExplorer 0 Posted February 21 Share Posted February 21 Hi, I just downloaded the MetroGUI UDF - GUI Additions - AutoIt Forums (autoitscript.com) in the current Version. I loaded the Example.au3 in my SciTE V4.4.6 and tried to run it (Shift+F5) but it returns the following 11 errors: Quote Func _WinAPI_GetProcAddress($hModule, $vName) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\_test\autoit\MetroGUI-UDF\MetroUDF-Required\SSCtrlHover.au3"(75,37) : error: _WinAPI_LoadLibrary() already defined. Func _WinAPI_LoadLibrary($sFileName)"C:\_test\autoit\MetroGUI-UDF\MetroUDF-Required\SSCtrlHover.au3"(69,46) : error: _WinAPI_GetProcAddress() already defined. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\_test\autoit\MetroGUI-UDF\MetroUDF-Required\SSCtrlHover.au3"(79,35) : error: _WinAPI_FreeLibrary() already defined. Func _WinAPI_FreeLibrary($hModule) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\_test\autoit\MetroGUI-UDF\MetroUDF-Required\SSCtrlHover.au3"(84,33) : error: _WinAPI_GetDlgCtrlID() already defined. Func _WinAPI_GetDlgCtrlID($hWnd) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\_test\autoit\MetroGUI-UDF\MetroUDF-Required\SSCtrlHover.au3"(88,31) : error: _WinAPI_SetCapture() already defined. Func _WinAPI_SetCapture($hWnd) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\_test\autoit\MetroGUI-UDF\MetroUDF-Required\SSCtrlHover.au3"(92,34) : error: _WinAPI_DestroyWindow() already defined. Func _WinAPI_DestroyWindow($hWnd) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\_test\autoit\MetroGUI-UDF\MetroUDF-Required\SSCtrlHover.au3"(116,26) : error: _WinAPI_GetCapture() already defined. Func _WinAPI_GetCapture() ~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Program Files (x86)\AutoIt3\Include\WinAPIShellEx.au3"(91,61) : error: _WinAPI_DefSubclassProc() already defined. Func _WinAPI_DefSubclassProc($hWnd, $iMsg, $wParam, $lParam) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Program Files (x86)\AutoIt3\Include\WinAPIShellEx.au3"(170,70) : error: _WinAPI_RemoveWindowSubclass() already defined. Func _WinAPI_RemoveWindowSubclass($hWnd, $pSubclassProc, $idSubClass) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Program Files (x86)\AutoIt3\Include\WinAPIShellEx.au3"(194,79) : error: _WinAPI_SetWindowSubclass() already defined. Func _WinAPI_SetWindowSubclass($hWnd, $pSubclassProc, $idSubClass, $pData = 0) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\_test\autoit\MetroGUI-UDF\MetroGUI_UDF.au3"(521,125) : error: _cHvr_Register(): undefined function. _cHvr_Register($Control_Button_Array[0], "_iHoverOff", "_iHoverOn", "", "", _iAddHover($Control_Button_Array), $CurrentGUI) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ C:\_test\autoit\Example.au3 - 11 error(s), 0 warning(s) It is just the vanilla example I've downloaded. I did not modify anything. The same happens with Example-OnEventMode.au3. My goal is actually to have a modern looking UI. I do not necessarly need this UDF if there is a better alternative. I also downloaded the newest KODA version but it also looks very outdated. Thank you in advance. Link to post Share on other sites
AutoBert 223 Posted February 21 Share Posted February 21 (edited) This means; the udf Quote What's New in Version 5.1 Released October 17, 2017 isn't tested with your newer Autoit Version. Contact the autor: @BBs19 , or modify it your self (comment out these funcs using #cs before the Func and #ce after EndFunc. Yet, i tested and got an other error and commented out the func in SSCtrlHover.au3. I'm using the newest autoit 3.3.16.1 and couädn't find other already defined func's, expandcollapse popup;====================================== ;~ Author : binhnx ;~ Created : 2014/10/20 ;====================================== ;~ Modified : BB_19 ;~ Last modified : 2017/10/07 ;====================================== #include-once #include <WinAPI.au3> #include <WinAPIShellEx.au3> Local $_cHvr_aData[0] Local Const $_cHvr_HDLLCOMCTL32 = _WinAPI_LoadLibrary('comctl32.dll') Assert($_cHvr_HDLLCOMCTL32 <> 0, 'This UDF requires comctl32.dll') Local Const $_cHvr_PDEFSUBCLASSPROC = _WinAPI_GetProcAddress($_cHvr_HDLLCOMCTL32, 'DefSubclassProc') Local Const $_cHvr_PINTERNALSUBCLASS_DLL = DllCallbackRegister('_cHvr_iProc', 'NONE', 'HWND;UINT;WPARAM;LPARAM;DWORD') Local Const $_cHvr_PINTERNALSUBCLASS = DllCallbackGetPtr($_cHvr_PINTERNALSUBCLASS_DLL) OnAutoItExitRegister("_cHvr_Finalize") Local Const $_cHvr_TSUBCLASSEXE = Call(@AutoItX64 ? '_cHvr_CSCP_X64' : '_cHvr_CSCP_X86') Local Const $_cHvr_HEXECUTABLEHEAP = DllCall('kernel32.dll', 'HANDLE', 'HeapCreate', 'DWORD', 0x00040000, 'ULONG_PTR', 0, 'ULONG_PTR', 0)[0] Assert($_cHvr_HEXECUTABLEHEAP <> 0, 'Failed to create executable heap object') Local Const $_cHvr_PSUBCLASSEXE = _cHvr_ExecutableFromStruct(Call(@AutoItX64 ? '_cHvr_CSCP_X64' : '_cHvr_CSCP_X86')) Func _cHvr_Register($idCtrl, $fnHovOff = '', $fnHoverOn = '', $fnClick = '', $fnDblClk = '', $HoverData = 0, $ClickData = 0, $fnRightClick = '') Local $hWnd = GUICtrlGetHandle($idCtrl) If (Not (IsHWnd($hWnd))) Then Return SetError(1, 0, -1) Local $nIndex = _cHvr_GetNewIndex($hWnd) Local $aData[13] $aData[0] = $hWnd ;Control Hwnd $aData[1] = $idCtrl ; Control handle $aData[3] = $fnHovOff ;Hover Off func $aData[4] = $HoverData ;Hover Off Data $aData[5] = $fnHoverOn ;Hover ON func $aData[6] = $HoverData ;Hover ON Data $aData[7] = $fnRightClick ;RClick func $aData[8] = $ClickData ; click data $aData[9] = $fnClick ;Click func $aData[10] = $ClickData ; click data $aData[11] = $fnDblClk ;DB click func $aData[12] = $ClickData ;DB click data $_cHvr_aData[$nIndex] = $aData _WinAPI_SetWindowSubclass($hWnd, $_cHvr_PSUBCLASSEXE, $hWnd, $nIndex) Return $nIndex EndFunc ;==>_cHvr_Register Func _cHvr_iProc($hWnd, $uMsg, $wParam, $lParam, $cIndex) Switch $uMsg Case 0x0200 ;Hover GUISetCursor(2, 1) _cHvr_cMove($_cHvr_aData[$cIndex], $hWnd, $uMsg, $wParam, $lParam) Case 0x0201 ;Leftclick _cHvr_cDown($_cHvr_aData[$cIndex], $hWnd, $uMsg, $wParam, $lParam) Case 0x0202 _cHvr_cUp($_cHvr_aData[$cIndex], $hWnd, $uMsg, $wParam, $lParam) Return False Case 0x0203 ;Doubleclick _cHvr_cDblClk($_cHvr_aData[$cIndex], $hWnd, $uMsg, $wParam, $lParam) Case 0x0204 ;Rightclick _cHvr_cRightClk($_cHvr_aData[$cIndex], $hWnd, $uMsg, $wParam, $lParam) Case 0x02A3 ;Hover leave _cHvr_cLeave($_cHvr_aData[$cIndex], $hWnd, $uMsg, $wParam, $lParam) Case 0x0082 ;Deleted _cHvr_UnRegisterInternal($cIndex, $hWnd) EndSwitch Return True EndFunc ;==>_cHvr_iProc Func _cHvr_cDown(ByRef $aCtrlData, $hWnd, $uMsg, ByRef $wParam, ByRef $lParam) _WinAPI_SetCapture($hWnd) _cHvr_CallFunc($aCtrlData, 9) EndFunc ;==>_cHvr_cDown Func _cHvr_cMove(ByRef $aCtrlData, $hWnd, $uMsg, ByRef $wParam, ByRef $lParam) If (_WinAPI_GetCapture() = $hWnd) Then Local $bIn = _cHvr_IsInClient($hWnd, $lParam) If Not $aCtrlData[2] Then If $bIn Then $aCtrlData[2] = 1 _cHvr_CallFunc($aCtrlData, 9) EndIf Else If Not $bIn Then $aCtrlData[2] = 0 _cHvr_CallFunc($aCtrlData, 3) EndIf EndIf ElseIf Not $aCtrlData[2] Then $aCtrlData[2] = 1 _cHvr_CallFunc($aCtrlData, 5) Local $tTME = DllStructCreate('DWORD;DWORD;HWND;DWORD') DllStructSetData($tTME, 1, DllStructGetSize($tTME)) DllStructSetData($tTME, 2, 2) ;$TME_LEAVE DllStructSetData($tTME, 3, $hWnd) DllCall('user32.dll', 'BOOL', 'TrackMouseEvent', 'STRUCT*', $tTME) EndIf EndFunc ;==>_cHvr_cMove Func _cHvr_cUp(ByRef $aCtrlData, $hWnd, $uMsg, ByRef $wParam, ByRef $lParam) Local $lRet = _WinAPI_DefSubclassProc($hWnd, $uMsg, $wParam, $lParam) If (_WinAPI_GetCapture() = $hWnd) Then _WinAPI_ReleaseCapture() If _cHvr_IsInClient($hWnd, $lParam) Then _cHvr_CallFunc($aCtrlData, 9) EndIf EndIf Return $lRet EndFunc ;==>_cHvr_cUp Func _cHvr_cDblClk(ByRef $aCtrlData, $hWnd, $uMsg, ByRef $wParam, ByRef $lParam) _cHvr_CallFunc($aCtrlData, 11) EndFunc ;==>_cHvr_cDblClk Func _cHvr_cRightClk(ByRef $aCtrlData, $hWnd, $uMsg, ByRef $wParam, ByRef $lParam) _cHvr_CallFunc($aCtrlData, 7) EndFunc ;==>_cHvr_cRightClk Func _cHvr_cLeave(ByRef $aCtrlData, $hWnd, $uMsg, ByRef $wParam, ByRef $lParam) $aCtrlData[2] = 0 _cHvr_CallFunc($aCtrlData, 3) EndFunc ;==>_cHvr_cLeave Func _cHvr_CallFunc(ByRef $aCtrlData, $iCallType) Call($aCtrlData[$iCallType], $aCtrlData[1], $aCtrlData[$iCallType + 1]) EndFunc ;==>_cHvr_CallFunc Func _cHvr_ArrayPush(ByRef $aStackArr, Const $vSrc1 = Default, Const $vSrc2 = Default, Const $vSrc3 = Default, Const $vSrc4 = Default, Const $vSrc5 = Default) While (UBound($aStackArr) < ($aStackArr[0] + @NumParams)) ReDim $aStackArr[UBound($aStackArr) * 2] WEnd If Not ($vSrc1 = Default) Then $aStackArr[0] += 1 $aStackArr[$aStackArr[0]] = $vSrc1 EndIf If Not ($vSrc2 = Default) Then $aStackArr[0] += 1 $aStackArr[$aStackArr[0]] = $vSrc2 EndIf If Not ($vSrc3 = Default) Then $aStackArr[0] += 1 $aStackArr[$aStackArr[0]] = $vSrc3 EndIf If Not ($vSrc4 = Default) Then $aStackArr[0] += 1 $aStackArr[$aStackArr[0]] = $vSrc4 EndIf If Not ($vSrc5 = Default) Then $aStackArr[0] += 1 $aStackArr[$aStackArr[0]] = $vSrc5 EndIf EndFunc ;==>_cHvr_ArrayPush Func _cHvr_IsInClient($hWnd, $lParam) Local $iX = BitShift(BitShift($lParam, -16), 16) Local $iY = BitShift($lParam, 16) Local $aSize = WinGetClientSize($hWnd) Return Not ($iX < 0 Or $iY < 0 Or $iX > $aSize[0] Or $iY > $aSize[1]) EndFunc ;==>_cHvr_IsInClient Func _cHvr_CSCP_X86() ;Create Subclass Process x86 ; $hWnd HWND size: 4 ESP+4 EBP+8 ; $uMsg UINT size: 4 ESP+8 EBP+12 ; $wParam WPARAM size: 4 ESP+12 EBP+16 ; $lParam LPARAM size: 4 ESP+16 EBP+20 ; $uIdSubclass UINT_PTR size: 4 ESP+20 EBP+24 ; $dwRefData DWORD_PTR size: 4 ESP+24 EBP+28 Total: 24 ; NERVER FORGET ADDING align 1 OR YOU WILL SPEND HOURS TO FIND WHAT CAUSE 0xC0000005 Access Violation Local $sExe = 'align 1;' Local $aOpCode[100] $aOpCode[0] = 0 Local $nAddrOffset[5] Local $nElemOffset[5] ; Func ; __stdcall $sExe &= 'BYTE;BYTE;BYTE;' _cHvr_ArrayPush($aOpCode, 0x55) ;push ebp _cHvr_ArrayPush($aOpCode, 0x8B, 0xEC) ;mov ebp, esp ; Save un-modified params to nv register $sExe &= 'BYTE;' ;push ebx _cHvr_ArrayPush($aOpCode, 0x53) ;53 $sExe &= 'BYTE;BYTE;BYTE;' ;mov ebx, DWORD PTR [ebp+16] _cHvr_ArrayPush($aOpCode, 0x8B, 0x5D, 16) ;8b 5d 10 $sExe &= 'BYTE;' ;push esi _cHvr_ArrayPush($aOpCode, 0x56) ;56 $sExe &= 'BYTE;BYTE;BYTE;' ;mov esi, DWORD PTR [ebp+12] _cHvr_ArrayPush($aOpCode, 0x8B, 0x75, 12) ;8b 75 0c $sExe &= 'BYTE;' ;push edi _cHvr_ArrayPush($aOpCode, 0x57) ;57 $sExe &= 'BYTE;BYTE;BYTE;' ;mov ebx, DWORD PTR [ebp+20] _cHvr_ArrayPush($aOpCode, 0x8B, 0x7D, 20) ;8b 7d 14 ; If ($uMsg = 0x0082) Then Goto WndProcInternal ;WM_NCDESTROY $sExe &= 'BYTE;BYTE;DWORD;' ;cmp esi, 0x82 _cHvr_ArrayPush($aOpCode, 0x81, 0xFE, 0x82) ;81 fe 82 00 00 00 $sExe &= 'BYTE;BYTE;' ;je short WndProcInternal _cHvr_ArrayPush($aOpCode, 0x74, 0) ;74 BYTE_OFFSET $nAddrOffset[0] = DllStructGetSize(DllStructCreate($sExe)) $nElemOffset[0] = $aOpCode[0] ; ElseIf ($uMsg = 0x02A3) Then Goto WndProcInternal ;WM_MOUSELEAVE $sExe &= 'BYTE;BYTE;DWORD;' ;cmp esi, 0x2A3 _cHvr_ArrayPush($aOpCode, 0x81, 0xFE, 0x2A3) ;81 fe a3 02 00 00 $sExe &= 'BYTE;BYTE;' ;je short WndProcInternal _cHvr_ArrayPush($aOpCode, 0x74, 0) ;74 BYTE_OFFSET $nAddrOffset[1] = DllStructGetSize(DllStructCreate($sExe)) $nElemOffset[1] = $aOpCode[0] ; ElseIf ($uMsg < 0x200 Or $uMsg > 0x203) Then Goto DefaultWndProc $sExe &= 'BYTE;BYTE;BYTE;' ;lea eax, DWORD PTR [esi-0x200] _cHvr_ArrayPush($aOpCode, 0x8D, 0x86, -0x200) ;8d 86 00 02 00 00 $sExe &= 'BYTE;BYTE;BYTE;' ;cmp eax, 3 _cHvr_ArrayPush($aOpCode, 0x83, 0xF8, 3) ;83 f8 03 $sExe &= 'BYTE;BYTE;' ;ja short DefaultWndProc _cHvr_ArrayPush($aOpCode, 0x77, 0) ;77 BYTE_OFFSET $nAddrOffset[2] = DllStructGetSize(DllStructCreate($sExe)) $nElemOffset[2] = $aOpCode[0] ; :WndProcInternal (HWND, UINT, WPARAM, LPARAM, DWORD) $aOpCode[$nElemOffset[0]] = $nAddrOffset[2] - $nAddrOffset[0] $aOpCode[$nElemOffset[1]] = $nAddrOffset[2] - $nAddrOffset[1] ; Prepare stack $sExe &= 'BYTE;BYTE;BYTE;' ;mov ecx, DWORD PTR [ebp+28] _cHvr_ArrayPush($aOpCode, 0x8B, 0x4D, 28) ;8b 4d 1c $sExe &= 'BYTE;BYTE;BYTE;' ;mov edx, DWORD PTR [ebp+8] _cHvr_ArrayPush($aOpCode, 0x8B, 0x55, 8) ;8b 55 08 $sExe &= 'BYTE;' ;push ecx _cHvr_ArrayPush($aOpCode, 0x51) ;51 $sExe &= 'BYTE;' ;push edi _cHvr_ArrayPush($aOpCode, 0x57) ;57 $sExe &= 'BYTE;' ;push ebx _cHvr_ArrayPush($aOpCode, 0x53) ;53 $sExe &= 'BYTE;' ;push esi _cHvr_ArrayPush($aOpCode, 0x56) ;56 $sExe &= 'BYTE;' ;push edx _cHvr_ArrayPush($aOpCode, 0x52) ;52 ; Call $sExe &= 'BYTE;PTR;' ;mov eax, _cHvr_iProc _cHvr_ArrayPush($aOpCode, 0xB8, $_cHvr_PINTERNALSUBCLASS) $sExe &= 'BYTE;BYTE;' ;call near eax _cHvr_ArrayPush($aOpCode, 0xFF, 0xD0) ;ff 75 8 ; If (WndProcInternal() = 0) Then Return $sExe &= 'BYTE;BYTE;' ;test eax, eax _cHvr_ArrayPush($aOpCode, 0x85, 0xC0) ;85 c0 $sExe &= 'BYTE;BYTE;' ;jz short Return _cHvr_ArrayPush($aOpCode, 0x74, 0) ;74 BYTE_OFFSET $nAddrOffset[3] = DllStructGetSize(DllStructCreate($sExe)) $nElemOffset[3] = $aOpCode[0] ; :DefaultWndProc (HWND, UINT, WPARAM, LPARAM) $aOpCode[$nElemOffset[2]] = $nAddrOffset[3] - $nAddrOffset[2] ; Prepare stack $sExe &= 'BYTE;BYTE;BYTE;' ;mov eax, DWORD PTR [ebp+8] _cHvr_ArrayPush($aOpCode, 0x8B, 0x45, 8) $sExe &= 'BYTE;' ;push edi _cHvr_ArrayPush($aOpCode, 0x57) ;57 $sExe &= 'BYTE;' ;push ebx _cHvr_ArrayPush($aOpCode, 0x53) ;53 $sExe &= 'BYTE;' ;push esi _cHvr_ArrayPush($aOpCode, 0x56) ;56 $sExe &= 'BYTE;' ;push eax _cHvr_ArrayPush($aOpCode, 0x50) ;50 ;Call $sExe &= 'BYTE;PTR;' ;mov eax,COMCTL32.DefSubclassProc _cHvr_ArrayPush($aOpCode, 0xB8, $_cHvr_PDEFSUBCLASSPROC) $sExe &= 'BYTE;BYTE;' ;call near eax _cHvr_ArrayPush($aOpCode, 0xFF, 0xD0) ;ff 75 8 $nAddrOffset[4] = DllStructGetSize(DllStructCreate($sExe)) ; :Return $aOpCode[$nElemOffset[3]] = $nAddrOffset[4] - $nAddrOffset[3] ; Restore nv-register $sExe &= 'BYTE;BYTE;BYTE;' _cHvr_ArrayPush($aOpCode, 0x5F) ;pop edi _cHvr_ArrayPush($aOpCode, 0x5E) ;pop esi _cHvr_ArrayPush($aOpCode, 0x5B) ;pop ebx ; EndFunc $sExe &= 'BYTE;BYTE;BYTE;WORD' _cHvr_ArrayPush($aOpCode, 0x5D) ;pop ebp _cHvr_ArrayPush($aOpCode, 0xC2, 24) ;ret 24 Return _cHvr_PopulateOpcode($sExe, $aOpCode) EndFunc ;==>_cHvr_CSCP_X86 Func _cHvr_CSCP_X64() ;Create Subclass Process x64 ; First four INT and UINT has size = 8 instead of 4 because they are stored in RCX, RDX, R8, R9 ; $hWnd HWND size: 8 RCX RSP+8 ; $uMsg UINT size: 8 EDX RSP+16 ; $wParam WPARAM size: 8 R8 RSP+24 ; $lParam LPARAM size: 8 R9 RSP+32 ; $uIdSubclass UINT_PTR size: 8 RSP+40 ; $dwRefData DWORD_PTR size: 8 RSP+48 Total: 48 Local $sExe = 'align 1;' Local $aOpCode[100] $aOpCode[0] = 0 Local $nAddrOffset[5] Local $nElemOffset[5] ; If ($uMsg = 0x0082) Then Goto WndProcInternal ;WM_NCDESTROY $sExe &= 'BYTE;BYTE;DWORD;' ;cmp edx, 0x82 _cHvr_ArrayPush($aOpCode, 0x81, 0xFA, 0x82) ;81 fa 82 00 00 00 $sExe &= 'BYTE;BYTE;' ;je short WndProcInternal _cHvr_ArrayPush($aOpCode, 0x74, 0) ;74 BYTE_OFFSET $nAddrOffset[0] = DllStructGetSize(DllStructCreate($sExe)) $nElemOffset[0] = $aOpCode[0] ; ElseIf ($uMsg = 0x02A3) Then Goto WndProcInternal ;WM_MOUSELEAVE $sExe &= 'BYTE;BYTE;DWORD;' ;cmp edx, 0x2A3 _cHvr_ArrayPush($aOpCode, 0x81, 0xFA, 0x2A3) ;81 fa a3 02 00 00 $sExe &= 'BYTE;BYTE;' ;je short WndProcInternal _cHvr_ArrayPush($aOpCode, 0x74, 0) ;74 BYTE_OFFSET $nAddrOffset[1] = DllStructGetSize(DllStructCreate($sExe)) $nElemOffset[1] = $aOpCode[0] ; ElseIf ($uMsg < 0x200 Or $uMsg > 0x203) Then Goto DefaultWndProc $sExe &= 'BYTE;BYTE;DWORD;' ;lea eax, DWORD PTR [rdx-0x200] _cHvr_ArrayPush($aOpCode, 0x8D, 0x82, -0x200) ;8d 82 00 02 00 00 $sExe &= 'BYTE;BYTE;BYTE;' ;cmp eax, 3 _cHvr_ArrayPush($aOpCode, 0x83, 0xF8, 3) ;83 f8 03 $sExe &= 'BYTE;BYTE;' ;ja short DefaultWndProc _cHvr_ArrayPush($aOpCode, 0x77, 0) ;77 BYTE_OFFSET $nAddrOffset[2] = DllStructGetSize(DllStructCreate($sExe)) $nElemOffset[2] = $aOpCode[0] $aOpCode[$nElemOffset[0]] = $nAddrOffset[2] - $nAddrOffset[0] $aOpCode[$nElemOffset[1]] = $nAddrOffset[2] - $nAddrOffset[1] ; :WndProcInternal (HWND rsp+8, UINT +16, WPARAM +24, LPARAM +32, DWORD +40) ; $dwRefData = [ESP+48+48(sub rsp, 48)+8(push rdi)] = [ESP+104] ; Save base registers: $sExe &= 'BYTE;BYTE;BYTE;BYTE;BYTE;' ;mov QWORD PTR [rsp+8], rbx _cHvr_ArrayPush($aOpCode, 0x48, 0x89, 0x5C, 0x24, 8) ;48 89 5c 24 08 $sExe &= 'BYTE;BYTE;BYTE;BYTE;BYTE;' ;mov QWORD PTR [rsp+16], rbp _cHvr_ArrayPush($aOpCode, 0x48, 0x89, 0x6C, 0x24, 16) ;48 89 6c 24 10 $sExe &= 'BYTE;BYTE;BYTE;BYTE;BYTE;' ;mov QWORD PTR [rsp+24], rsi _cHvr_ArrayPush($aOpCode, 0x48, 0x89, 0x74, 0x24, 24) ;48 89 74 24 18 $sExe &= 'BYTE;' ;push rdi _cHvr_ArrayPush($aOpCode, 0x57) ;57 ; Max sub-routine params = 5 (size = 5*8 = 40), + 8 bytes for return value = 48. $sExe &= 'BYTE;BYTE;BYTE;BYTE;' ;sub rsp, 48 _cHvr_ArrayPush($aOpCode, 0x48, 0x83, 0xEC, 48) ;48 83 ec 30 ; rbx, rbp, rsi now at [ESP+8+56], [ESP+16+56], [ESP+24+56] ; Save the parameters: $sExe &= 'BYTE;BYTE;BYTE;' ;mov rdi, r9 _cHvr_ArrayPush($aOpCode, 0x49, 0x8B, 0xF9) ;49 8b f9 $sExe &= 'BYTE;BYTE;BYTE;' ;mov rsi, r8 _cHvr_ArrayPush($aOpCode, 0x49, 0x8B, 0xF0) ;49 8b f0 $sExe &= 'BYTE;BYTE;' ;mov ebx, edx _cHvr_ArrayPush($aOpCode, 0x8B, 0xDA) ;8b da $sExe &= 'BYTE;BYTE;BYTE;' ;mov rbp, rcx _cHvr_ArrayPush($aOpCode, 0x48, 0x8B, 0xE9) ;48 8b e9 ; Prepare additional parameter for internal WndProc $sExe &= 'BYTE;BYTE;BYTE;BYTE;BYTE;' ;mov rax, QWORD PTR [rsp+104] _cHvr_ArrayPush($aOpCode, 0x48, 0x8B, 0x44, 0x24, 104) ;48 8b 44 24 68 $sExe &= 'BYTE;BYTE;BYTE;BYTE;BYTE;' ;mov QWORD PTR [rsp+32], Rax] _cHvr_ArrayPush($aOpCode, 0x48, 0x89, 0x44, 0x24, 32) ;48 89 44 24 20 ; Call internal WndProc $sExe &= 'BYTE;BYTE;PTR;' ;mov rax, QWORD PTR _cHvr_iProc _cHvr_ArrayPush($aOpCode, 0x48, 0xB8, $_cHvr_PINTERNALSUBCLASS) ;movabs rax, _cHvr_iProc ;48 b8 QWORD_PTR $sExe &= 'BYTE;BYTE;' ;call rax _cHvr_ArrayPush($aOpCode, 0xFF, 0xD0) ;ff d0 ; If (WndProcInternal() = 0) Then Return $sExe &= 'BYTE;BYTE;BYTE;' ;cmp edx, 0x2A3 _cHvr_ArrayPush($aOpCode, 0x48, 0x85, 0xC0) ;48 85 c0 $sExe &= 'BYTE;BYTE;' ;je short WndProcInternal _cHvr_ArrayPush($aOpCode, 0x74, 0) $nAddrOffset[3] = DllStructGetSize(DllStructCreate($sExe)) $nElemOffset[3] = $aOpCode[0] ; Restore parameters for DefSubclassProc call $sExe &= 'BYTE;BYTE;BYTE;' ;mov r9, rdi _cHvr_ArrayPush($aOpCode, 0x4C, 0x8B, 0xCF) ;4c 8b cf $sExe &= 'BYTE;BYTE;BYTE;' ;mov r8, rsi _cHvr_ArrayPush($aOpCode, 0x4C, 0x8B, 0xC6) ;4c 8b c6 $sExe &= 'BYTE;BYTE;' ;mov edx, ebx _cHvr_ArrayPush($aOpCode, 0x8B, 0xD3) ;8b d3 $sExe &= 'BYTE;BYTE;BYTE;' ;mov rcx, rbp _cHvr_ArrayPush($aOpCode, 0x48, 0x8B, 0xCD) ;48 8b cd ; Restore registers value $aOpCode[$nElemOffset[3]] = DllStructGetSize(DllStructCreate($sExe)) - $nAddrOffset[3] $sExe &= 'BYTE;BYTE;BYTE;BYTE;BYTE;' ;mov rbx, QWORD PTR [rsp+64] _cHvr_ArrayPush($aOpCode, 0x48, 0x8B, 0x5C, 0x24, 64) ;48 8b 5c 24 40 $sExe &= 'BYTE;BYTE;BYTE;BYTE;BYTE;' ;mov rbp, QWORD PTR [rsp+72] _cHvr_ArrayPush($aOpCode, 0x48, 0x8B, 0x6C, 0x24, 72) ;48 8b 6c 24 48 $sExe &= 'BYTE;BYTE;BYTE;BYTE;BYTE;' ;mov rsi, QWORD PTR [rsp+80] _cHvr_ArrayPush($aOpCode, 0x48, 0x8B, 0x74, 0x24, 80) ;48 8b 74 24 50 $sExe &= 'BYTE;BYTE;BYTE;BYTE;' ;add rsp, 48 _cHvr_ArrayPush($aOpCode, 0x48, 0x83, 0xc4, 48) ;48 83 c4 30 $sExe &= 'BYTE;' ;pop rdi _cHvr_ArrayPush($aOpCode, 0x5F) ;5f $sExe &= 'BYTE;BYTE;BYTE;' ;cmp edx, 0x2A3 _cHvr_ArrayPush($aOpCode, 0x48, 0x85, 0xC0) ;48 85 c0 $sExe &= 'BYTE;BYTE;' ;je short WndProcInternal _cHvr_ArrayPush($aOpCode, 0x74, 0) $nAddrOffset[4] = DllStructGetSize(DllStructCreate($sExe)) $nElemOffset[4] = $aOpCode[0] $aOpCode[$nElemOffset[2]] = DllStructGetSize(DllStructCreate($sExe)) - $nAddrOffset[2] ; :DefaultWndProc (HWND, UINT, WPARAM, LPARAM) $sExe &= 'BYTE;BYTE;PTR;' _cHvr_ArrayPush($aOpCode, 0x48, 0xB8, $_cHvr_PDEFSUBCLASSPROC) $sExe &= 'BYTE;BYTE;' _cHvr_ArrayPush($aOpCode, 0xFF, 0xE0) ; :Return $aOpCode[$nElemOffset[4]] = DllStructGetSize(DllStructCreate($sExe)) - $nAddrOffset[4] $sExe &= 'BYTE;' ;ret 0 _cHvr_ArrayPush($aOpCode, 0xC3) Return _cHvr_PopulateOpcode($sExe, $aOpCode) EndFunc ;==>_cHvr_CSCP_X64 Func _cHvr_PopulateOpcode(ByRef $sExe, ByRef $aOpCode) Local $tExe = DllStructCreate($sExe) Assert(@error = 0, 'DllStrucCreate Failed With Error = ' & @error) For $i = 1 To $aOpCode[0] DllStructSetData($tExe, $i, $aOpCode[$i]) Next Return $tExe EndFunc ;==>_cHvr_PopulateOpcode Func _cHvr_ExecutableFromStruct($tExe) Local $pExe = DllCall('kernel32.dll', 'PTR', 'HeapAlloc', 'HANDLE', $_cHvr_HEXECUTABLEHEAP, 'DWORD', 8, 'ULONG_PTR', DllStructGetSize($tExe))[0] Assert($pExe <> 0, 'Allocate memory failed') DllCall("kernel32.dll", "none", "RtlMoveMemory", "PTR", $pExe, "PTR", DllStructGetPtr($tExe), "ULONG_PTR", DllStructGetSize($tExe)) Assert(@error = 0, 'Failed to copy memory') Return $pExe EndFunc ;==>_cHvr_ExecutableFromStruct Func _cHvr_UnRegisterInternal($cIndex, $hWnd) _WinAPI_RemoveWindowSubclass($hWnd, $_cHvr_PSUBCLASSEXE, $hWnd) Local $aData = $_cHvr_aData[$cIndex] $_cHvr_aData[$cIndex] = 0 Call("_iControlDelete", $aData[1]) EndFunc ;==>_cHvr_UnRegisterInternal Func _cHvr_Finalize() DllCallbackFree($_cHvr_PINTERNALSUBCLASS_DLL) _WinAPI_FreeLibrary($_cHvr_HDLLCOMCTL32) If ($_cHvr_HEXECUTABLEHEAP <> 0) Then If ($_cHvr_PSUBCLASSEXE <> 0) Then DllCall('kernel32.dll', 'BOOL', 'HeapFree', 'HANDLE', $_cHvr_HEXECUTABLEHEAP, 'DWORD', 0, 'PTR', $_cHvr_PSUBCLASSEXE) EndIf DllCall('kernel32.dll', 'BOOL', 'HeapDestroy', 'HANDLE', $_cHvr_HEXECUTABLEHEAP) EndIf EndFunc ;==>_cHvr_Finalize Func Assert($bExpression, $sMsg = '', $sScript = @ScriptName, $sScriptPath = @ScriptFullPath, $iLine = @ScriptLineNumber, $iError = @error, $iExtend = @extended) If (Not ($bExpression)) Then MsgBox(BitOR(1, 0x10), 'Assertion Error!', _ @CRLF & 'Script' & @TAB & ': ' & $sScript _ & @CRLF & 'Path' & @TAB & ': ' & $sScriptPath _ & @CRLF & 'Line' & @TAB & ': ' & $iLine _ & @CRLF & 'Error' & @TAB & ': ' & ($iError > 0x7FFF ? Hex($iError) : $iError) _ & ($iExtend <> 0 ? ' (Extended : ' & ($iExtend > 0x7FFF ? Hex($iExtend) : $iExtend) & ')' : '') _ & @CRLF & 'Message' & @TAB & ': ' & $sMsg _ & @CRLF & @CRLF & 'OK: Exit Script' & @TAB & 'Cancel: Continue') Exit EndIf EndFunc ;==>Assert Func _cHvr_GetNewIndex($hWnd) ;Try to assign index from previously deleted control For $i = 0 To UBound($_cHvr_aData) - 1 Step +1 If Not IsArray($_cHvr_aData[$i]) Then Return $i EndIf Next ReDim $_cHvr_aData[UBound($_cHvr_aData) + 1] Return UBound($_cHvr_aData) - 1 EndFunc ;==>_cHvr_GetNewIndex #cs Func _WinAPI_GetCapture() Return DllCall("user32.dll", "HWND", "GetCapture")[0] EndFunc ;==>_WinAPI_GetCapture #ce but 68 warnings: Spoiler expandcollapse popupwarning: 'Local' specifier in global scope. Local $_cHvr_aData ~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroUDF-Required\SSCtrlHover.au3"(15,7) : warning: 'Local' specifier in global scope. Local Const ~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroUDF-Required\SSCtrlHover.au3"(17,7) : warning: 'Local' specifier in global scope. Local Const ~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroUDF-Required\SSCtrlHover.au3"(18,7) : warning: 'Local' specifier in global scope. Local Const ~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroUDF-Required\SSCtrlHover.au3"(19,7) : warning: 'Local' specifier in global scope. Local Const ~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroUDF-Required\SSCtrlHover.au3"(22,7) : warning: 'Local' specifier in global scope. Local Const ~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroUDF-Required\SSCtrlHover.au3"(23,7) : warning: 'Local' specifier in global scope. Local Const ~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroUDF-Required\SSCtrlHover.au3"(25,7) : warning: 'Local' specifier in global scope. Local Const ~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(459,92) : warning: $Hover_BK_Color already declared/assigned Local $Hover_BK_Color = StringReplace(_AlterBrightness($GUI_BG_Color, +20), "0x", "0xFF") ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(467,134) : warning: $hPen1 already declared/assigned Local $hPen1 = _GDIPlus_PenCreate(StringReplace(_AlterBrightness($GUI_Font_Color, -80), "0x", "0xFF"), Round(1 * $cbDPI)) ;inactive ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(640,88) : warning: $BG_ColorD already declared/assigned Local $BG_ColorD = StringReplace(_AlterBrightness($GUIThemeColor, +12), "0x", "0xFF") ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(749,127) : warning: $hPen4 already declared/assigned Local $hPen4 = _GDIPlus_PenCreate(StringReplace(_AlterBrightness($GUI_Font_Color, -80), "0x", "0xFF"), $FrameSize) ;inactive ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(1337,58) : warning: $Font_Color1 already declared/assigned Local $Font_Color1 = _AlterBrightness($Font_Color, -15) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(1520,87) : warning: $BoxFrameCol already declared/assigned Local $BoxFrameCol = StringReplace(_AlterBrightness($Font_Color, -45), "0x", "0xFF") ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(1521,88) : warning: $BoxFrameCol1 already declared/assigned Local $BoxFrameCol1 = StringReplace(_AlterBrightness($Font_Color, -45), "0x", "0xFF") ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(1522,87) : warning: $Font_Color1 already declared/assigned Local $Font_Color1 = StringReplace(_AlterBrightness($Font_Color, -30), "0x", "0xFF") ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(1800,87) : warning: $BoxFrameCol already declared/assigned Local $BoxFrameCol = StringReplace(_AlterBrightness($Font_Color, -45), "0x", "0xFF") ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(1801,88) : warning: $BoxFrameCol1 already declared/assigned Local $BoxFrameCol1 = StringReplace(_AlterBrightness($Font_Color, -55), "0x", "0xFF") ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(1802,87) : warning: $Font_Color1 already declared/assigned Local $Font_Color1 = StringReplace(_AlterBrightness($Font_Color, -30), "0x", "0xFF") ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(2128,100) : warning: $Brush2 already declared/assigned Local $Brush2 = _GDIPlus_BrushCreateSolid(StringReplace($CB_Radio_CheckMark_Color, "0x", "0xFF")) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(2340,99) : warning: $Brush1 already declared/assigned Local $Brush1 = _GDIPlus_BrushCreateSolid(StringReplace($CB_Radio_Color, "0x", "0xFF")) ;default ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(2341,111) : warning: $Brush2 already declared/assigned Local $Brush2 = _GDIPlus_BrushCreateSolid(StringReplace($CB_Radio_Hover_Color, "0x", "0xFF")) ;default hover ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(2342,98) : warning: $Brush3 already declared/assigned Local $Brush3 = _GDIPlus_BrushCreateSolid(StringReplace($ButtonBKColor, "0x", "0xFF")) ;checked ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(2343,127) : warning: $Brush4 already declared/assigned Local $Brush4 = _GDIPlus_BrushCreateSolid(StringReplace(_AlterBrightness($ButtonBKColor, +10), "0x", "0xFF")) ;checked hover ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(2344,109) : warning: $PenX already declared/assigned Local $PenX = _GDIPlus_PenCreate(StringReplace($CB_Radio_Color, "0x", "0xFF"), $FrameSize) ;CheckmarkColor ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(2501,115) : warning: $Pen1 already declared/assigned Local $Pen1 = _GDIPlus_PenCreate(StringReplace(_AlterBrightness($GUIThemeColor, +85), "0x", "0xFF"), $FrameSize) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(2746,144) : warning: $1stButton already declared/assigned Local $1stButton = _Metro_CreateButton($1stButtonText, $1stButton_Left, ($mHeight / $msgbDPI) - 50, 100, 34, $ButtonBKColor, $ButtonTextColor) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(2747,144) : warning: $2ndButton already declared/assigned Local $2ndButton = _Metro_CreateButton($2ndButtonText, $2ndButton_Left, ($mHeight / $msgbDPI) - 50, 100, 34, $ButtonBKColor, $ButtonTextColor) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(2749,144) : warning: $3rdButton already declared/assigned Local $3rdButton = _Metro_CreateButton($3rdButtonText, $3rdButton_Left, ($mHeight / $msgbDPI) - 50, 100, 34, $ButtonBKColor, $ButtonTextColor) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(2868,28) : warning: $input_nMsg possibly not declared/created yet $input_nMsg = GUIGetMsg() ~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(2966,59) : warning: $ProgressWidth already declared/assigned Local $ProgressWidth = (($Progress[1]) / 100) * $Percent ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(3360,35) : warning: $wPos already declared/assigned Local $wPos = WinGetPos($hWnd) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(3430,44) : warning: $curInf already declared/assigned Local $curInf = GUIGetCursorInfo($hWnd) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(3432,22) : warning: $iSide already declared/assigned Local $iSide = 0, ~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(3432,36) : warning: $iTopBot already declared/assigned Local $iSide = 0, $iTopBot = 0, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(3432,46) : warning: $Cur already declared/assigned Local $iSide = 0, $iTopBot = 0, $Cur = 0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\MetroGUI-UDF\MetroGUI_UDF.au3"(3433,36) : warning: $wPos already declared/assigned Local $wPos = WinGetPos($hWnd) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(34,61) : warning: $Form1 possibly not declared/created yet $Form1 = _Metro_CreateGUI("Example", 500, 300, -1, -1, True) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(37,169) : warning: $Control_Buttons possibly not declared/created yet $Control_Buttons = _Metro_AddControlButtons(True, True, True, True, True) ;CloseBtn = True, MaximizeBtn = True, MinimizeBtn = True, FullscreenBtn = True, MenuBtn = True ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(40,40) : warning: $GUI_CLOSE_BUTTON possibly not declared/created yet $GUI_CLOSE_BUTTON = $Control_Buttons[0] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(41,43) : warning: $GUI_MAXIMIZE_BUTTON possibly not declared/created yet $GUI_MAXIMIZE_BUTTON = $Control_Buttons[1] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(42,42) : warning: $GUI_RESTORE_BUTTON possibly not declared/created yet $GUI_RESTORE_BUTTON = $Control_Buttons[2] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(43,43) : warning: $GUI_MINIMIZE_BUTTON possibly not declared/created yet $GUI_MINIMIZE_BUTTON = $Control_Buttons[3] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(44,45) : warning: $GUI_FULLSCREEN_BUTTON possibly not declared/created yet $GUI_FULLSCREEN_BUTTON = $Control_Buttons[4] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(45,44) : warning: $GUI_FSRestore_BUTTON possibly not declared/created yet $GUI_FSRestore_BUTTON = $Control_Buttons[5] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(46,39) : warning: $GUI_MENU_BUTTON possibly not declared/created yet $GUI_MENU_BUTTON = $Control_Buttons[6] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(50,67) : warning: $Button1 possibly not declared/created yet $Button1 = _Metro_CreateButton("Button Style 1", 50, 245, 115, 40) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(51,70) : warning: $Button2 possibly not declared/created yet $Button2 = _Metro_CreateButtonEx("Button Style 2", 195, 245, 115, 40) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(52,71) : warning: $Button3 possibly not declared/created yet $Button3 = _Metro_CreateButtonEx2("Button Style 3", 340, 245, 115, 40) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(55,66) : warning: $Checkbox1 possibly not declared/created yet $Checkbox1 = _Metro_CreateCheckbox("Checkbox 1", 30, 70, 125, 30) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(56,69) : warning: $Checkbox2 possibly not declared/created yet $Checkbox2 = _Metro_CreateCheckboxEx("Checkbox 2", 30, 107, 125, 30) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(57,70) : warning: $Checkbox3 possibly not declared/created yet $Checkbox3 = _Metro_CreateCheckboxEx2("Checkbox 3", 29, 142, 125, 30) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(64,63) : warning: $Radio1 possibly not declared/created yet $Radio1 = _Metro_CreateRadio("1", "Radio 1", 180, 70, 100, 30) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(65,64) : warning: $Radio2 possibly not declared/created yet $Radio2 = _Metro_CreateRadio("1", "Radio 2", 180, 110, 100, 30) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(66,96) : warning: $Radio3 possibly not declared/created yet $Radio3 = _Metro_CreateRadioEx("1", "Radio 3", 180, 150, 100, 30) ;Style with colored checkmark ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(70,61) : warning: $Toggle1 possibly not declared/created yet $Toggle1 = _Metro_CreateToggle("Toggle 1", 320, 70, 130, 30) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(71,64) : warning: $Toggle2 possibly not declared/created yet $Toggle2 = _Metro_CreateToggleEx("Toggle 2", 322, 107, 128, 30) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(72,215) : warning: $Toggle3 possibly not declared/created yet $Toggle3 = _Metro_CreateOnOffToggle("Enabled", "Disabled", 320, 144, 130, 30) ; Creates a toggle with different texts for on/off. Alternatively you can use _Metro_CreateOnOffToggleEx for the secondary toggle style. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(75,54) : warning: $Progress1 possibly not declared/created yet $Progress1 = _Metro_CreateProgress(100, 195, 300, 26) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(94,21) : warning: $nMsg possibly not declared/created yet $nMsg = GUIGetMsg() ~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(109,10) : warning: 'Local' specifier in global scope. Local $MenuButtonsArray ~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(111,10) : warning: 'Local' specifier in global scope. Local $MenuSelect ~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(132,10) : warning: 'Local' specifier in global scope. Local $aCInfo ~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(135,11) : warning: 'Local' specifier in global scope. Local $MenuButtonsArray ~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(137,11) : warning: 'Local' specifier in global scope. Local $MenuSelect ~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(137,78) : warning: $MenuSelect already declared/assigned Local $MenuSelect = _Metro_RightClickMenu($Form1, 300, $MenuButtonsArray) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(155,10) : warning: 'Local' specifier in global scope. Local $mInput ~~~~~~^ "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3"(163,10) : warning: 'Local' specifier in global scope. Local $Select_YesNo ~~~~~~^ C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3 - 0 error(s), 68 warning(s) ->20:16:18 AU3Check ended. Press F4 to jump to next error.rc:1 >Running:(3.3.16.1):C:\Program Files\AutoIt3\autoit3_x64.exe "C:\Users\(len)Bert\AutoIt\Downloaded\BBs19\MetroUDF-v5.1\MetroUDF-v5.1\Example.au3" +>Setting Hotkeys...--> Press Ctrl+Alt+Break to Restart or Ctrl+BREAK to Stop. Edited February 21 by AutoBert Link to post Share on other sites
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