



Expand collapse popup cabinet maker process to automate MasterCam ATP nesting process #include #include #include #include #include #include #include #include #include #include If XML library is updated, note that this script requires that save file will overwrite an existing file Opt ( "GUIOnEventMode", 1 ) 1 = OnEvent mode Opt ( "WinWaitDelay", 500 ) milliseconds Opt ( "TrayIconDebug", 1 ) Opt ( "WinSearchChildren", 1 ) Global $hMainGUI Global $hMainGUI2 Func GetAllWindowsControls ( $hCallersWindow, $bOnlyVisible = Default, $sStringIncludes = Default, $sClass = Default ) If Not IsHWnd ( $hCallersWindow ) Then ConsoleWrite ( "$hCallersWindow must be a handle.provided=" & ) Return False EndIf Get all list of controls If $bOnlyVisible = Default Then $bOnlyVisible = True If $sStringIncludes = Default Then $sStringIncludes = "" If $sClass = Default Then $sClass = "" $sClassList = WinGetClassList ( $hCallersWindow ) Create array $aClassList = StringSplit ( $sClassList, , 2 ) Sort array _ArraySort ( $aClassList ) _ArrayDelete ( $aClassList, 0 ) Loop $iCurrentClass = "" $iCurrentCount = 1 $iTotalCounter = 1 If StringLen ( $sClass ) > 0 Then For $i = UBound ( $aClassList ) - 1 To 0 Step - 1 If $aClassList $sClass Then _ArrayDelete ( $aClassList, $i ) EndIf Next EndIf For $i = 0 To UBound ( $aClassList ) - 1 If $aClassList = $iCurrentClass Then $iCurrentCount += 1 Else $iCurrentClass = $aClassList $iCurrentCount = 1 EndIf $hControl = ControlGetHandle ( $hCallersWindow, "", "" ) $text = StringRegExpReplace ( ControlGetText ( $hCallersWindow, "", $hControl ), "", ) $aPos = ControlGetPos ( $hCallersWindow, "", $hControl ) $sControlID = _WinAPI_GetDlgCtrlID ( $hControl ) $bIsVisible = ControlCommand ( $hCallersWindow, "", $hControl, "IsVisible" ) If $bOnlyVisible And Not $bIsVisible Then $iTotalCounter += 1 ContinueLoop EndIf If StringLen ( $sStringIncludes ) > 0 Then If Not StringInStr ( $text, $sStringIncludes ) Then $iTotalCounter += 1 ContinueLoop EndIf EndIf If IsArray ( $aPos ) Then ConsoleWrite("ControlID= Handle= ClassNN= XPos=) & "] YPos=) & "] Width=) & "] Height=) & "] IsVisible= Text=." & ConsoleWrite ( "Func=: ControlCounter= ControlID= Handle= ClassNN= XPos= ) & "] YPos= ) & "] Width= ) & "] Height= ) & "] IsVisible= Text=." & ) Else ConsoleWrite("ControlID= Handle= ClassNN= XPos= YPos= Width= Height= Text=." & ConsoleWrite ( "Func=: ControlCounter= ControlID= Handle= ClassNN= XPos= YPos= Width= Height= Text=." & ) EndIf If Not WinExists ( $hCallersWindow ) Then ExitLoop $iTotalCounter += 1 Next MsgBox($MB_SYSTEMMODAL, "title", "check console for control list") EndFunc =>GetAllWindowsControls = Func GetAllWindowsControls($hCallersWindow, $bOnlyVisible = Default, $sStringIncludes = Default, $sClass = Default) = Func setNestingOverlay ( ) $ovrWidth = 400 $ovrHeight = 60 $ovrLeft = - 1 $mcamWindow + $nestControlRelative $ovrTop = - 1 $mcamWindow + $nestControlRelative+ 10 $hMainGUI = GUICreate ( "covering mastercam buttons", $ovrWidth, $ovrHeight, $ovrLeft, $ovrTop, - 1, $WS_EX_TOPMOST ) GUISetOnEvent ( $GUI_EVENT_CLOSE, "CloseButton2" ) Local $iOKButton1 = GUICtrlCreateButton ( "Continue to gui2", 20, 20, 80 ) GUICtrlSetOnEvent ( $iOKButton1, "NestResultButtonOverlay" ) GUISetState (, $hMainGUI )
