#cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.6.1 Author: sprasad Script Function: Progress bar functions that look like 7z SFX #ce ---------------------------------------------------------------------------- #include #include #include #Include #include Func _ProgressBoxCreate($text, $show) Local $pbInfo[5] If $show == False Then $pbInfo[0] = False Return $pbInfo EndIf $mainWin = GUICreate("0% " & $text, 280, 100, -1, -1, BitOr($WS_CAPTION, $WS_POPUPWINDOW)) Opt("GUICoordMode", 2) $button = GUICtrlCreateButton("Cancel", 178, 55, 90, 26, $BS_DEFPUSHBUTTON, $WS_EX_WINDOWEDGE) $pbBaseWin = GUICreate("", 252, 22, 10, 10, BitOR($WS_POPUP, $WS_CHILD), _ BitOr($WS_EX_CLIENTEDGE, $WS_EX_MDICHILD), $mainWin) $pbColorWin = GUICreate("", 0, 20, 13, 13, BitOR($WS_POPUP, $WS_CHILD), _ $WS_EX_MDICHILD, $mainWin) GUISetBkColor(0x2255dd, $pbColorWin) GUISetState(@SW_SHOW, $mainWin) GUISetState(@SW_SHOW, $pbBaseWin) GUISetState(@SW_SHOW, $pbColorWin) GUISetState(@SW_SHOW, $button) $pbInfo[0] = $text $pbInfo[1] = $mainWin $pbInfo[2] = $button $pbInfo[3] = $pbBaseWin $pbInfo[4] = $pbColorWin Return $pbInfo EndFunc Func _ProgressBoxSet(ByRef $pbInfo, $percentage) If IsBool($pbInfo[0]) Then Return "OK" If $percentage > 100 Then $percentage = 100 If $percentage < 0 Then $percentage = 0 $percentage = Int($percentage) _WinAPI_SetWindowText($pbInfo[1], $percentage & "% " & $pbInfo[0]) $pbColorWin = $pbInfo[4] WinMove($pbColorWin, "", Default, Default, Int(($percentage * 250)/100)) $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Or $msg = $pbInfo[2] Then $retValue = MsgBox(4, $pbInfo[0], "Are you sure you want to cancel ?") If $retValue == 6 Then Return "EXIT" EndIf Return "OK" EndFunc Func _ProgressBoxClose(ByRef $pbInfo) If IsBool($pbInfo[0]) Then Return GUISetState(@SW_HIDE, $pbInfo[1]) GUIDelete($pbInfo[1]) EndFunc