Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата Атос:
Много долгих Sleep. »
Которые нужно заменить на циклы, либо создать функцию чтобы не повторять:

Код: Выделить весь код
#include <GUIConstantsEx.au3>

Global $hGUI, $iStart_Bttn, $iStop_Bttn
Global $iStop_Flag = False

$hGUI = GUICreate("111", 500, 300)

$iStart_Bttn = GUICtrlCreateButton('Start', 100, 10, 50, 22, 0x0)
$iStop_Bttn = GUICtrlCreateButton('Stop', 100, 50, 50, 22, 0x0)

GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $iStart_Bttn
			_Start()
		Case $iStop_Bttn
			_Stop()
    EndSwitch
WEnd

Func _Start()
	GUICtrlSetState($iStart_Bttn, $GUI_DISABLE)
	GUICtrlSetState($iStop_Bttn, $GUI_ENABLE)
	
	For $i = 1 To 5
		MsgBox(0, '222', '333', 1)
		_Sleep(3000)
		
		;MsgBox(0, '444', '555', 1)
		;_Sleep(5000)
		
		;MsgBox(0, '666', '777', 1)
		;_Sleep(8000)
		
		
		;SHOULD BE AT THE END
		If $iStop_Flag Then
			ExitLoop
		EndIf
	Next
	
	_Stop()
EndFunc

Func _Stop()
	$iStop_Flag = False
	
	GUICtrlSetState($iStart_Bttn, $GUI_ENABLE)
	GUICtrlSetState($iStop_Bttn, $GUI_DISABLE)
EndFunc

Func _Sleep($iTime)
	If $iStop_Flag Then
		Return
	EndIf
	
	Local $iTimer = TimerInit()
	
	While TimerDiff($iTimer) < $iTime
		Switch GUIGetMsg()
			Case $iStop_Bttn
				$iStop_Flag = True
				ExitLoop
			Case $GUI_EVENT_CLOSE
				Exit
		EndSwitch
	WEnd
EndFunc
В любом случае Sleep будет останавливать выполнение скрипта.
Тут нужно либо повесить всё выполнение кнопки на внешний скрипт, либо постоянно проверять событие нажатия кнопки выхода/завершения, как я это сделал выше в примерах.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:35, 28-07-2017 | #7