#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>

Local $progressbar1, $progressbar2, $button, $wait, $s, $msg, $m

GUICreate("Прогресс бар", 220, 100, 100, 200)
$progressbar1 = GUICtrlCreateProgress(10, 10, 200, 20)
GUICtrlSetColor(-1, 32250); не работает в стиле Windows XP
$progressbar2 = GUICtrlCreateProgress(10, 40, 200, 20, $PBS_SMOOTH) ; $PBS_MARQUEE - бегунок
$button = GUICtrlCreateButton("Старт", 75, 70, 70, 20)
GUISetState()

$wait = 20; ожидание 20 миллисек для шага прогресс бара
$s = 0; сохранение позиции прогресс бара
Do
	$msg = GUIGetMsg()
	If $msg = $button Then
		GUICtrlSetData($button, "Стоп")
		For $i = $s To 100
			If GUICtrlRead($progressbar1) = 50 Then MsgBox(4096, "Информация", "Половина выполнена...", 1)
			$m = GUIGetMsg()

			If $m = -3 Then ExitLoop

			If $m = $button Then
				GUICtrlSetData($button, "Далее")
				$s = $i ;сохранение текущей позиции прогресс бара в $s
				ExitLoop
			Else
				$s = 0
				GUICtrlSetData($progressbar1, $i)
				GUICtrlSetData($progressbar2, (100 - $i))
				Sleep($wait)
			EndIf
		Next
		If $i > 100 Then
			;		$s=0
			GUICtrlSetData($button, "Старт")
		EndIf
	EndIf
Until $msg = $GUI_EVENT_CLOSE