Как организовать паузу скрипта кнопкой в GUI, и его продолжение с места выполняемой инструкции в момент паузы.
Почему на отрез отказывается работать такой вариант:
При первом нажатии кнопки паузы скрипт благополучно прерывается но при повторном ничего не происходит.
А в этом примере все работает на ура(без гуй, при помощи хоткей):
Почему на отрез отказывается работать такой вариант:
Код:
#include "GUIConstants.au3"
Opt('MustDeclareVars', 1)
Opt("GUIOnEventMode", 1)
Global $mainwindow = GUICreate("Monitoring", 200, 200)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
Global $Pausebutton = GUICtrlCreateButton("Pause", 50, 5)
GUICtrlSetOnEvent($Pausebutton, "_Pause")
GUISetState(@SW_SHOW)
Global $Paused
While 1
Sleep(1000)
WEnd
Func _Pause()
$Paused = Not $Paused
While $Paused
Sleep(100)
ToolTip('Script is "Paused"',0,0)
WEnd
ToolTip("")
EndFunc
Func _Exit()
Exit
EndFunc
А в этом примере все работает на ура(без гуй, при помощи хоткей):
Код:
Opt('MustDeclareVars', 1)
HotKeySet("{PAUSE}", "_Pause")
HotKeySet("^{PAUSE}", "_Exit")
Global $Paused
While 1
MsgBox(0,0,"1",2)
MsgBox(0,0,"2",2)
MsgBox(0,0,"3",2)
_testAx()
MsgBox(0,0,"4",2)
MsgBox(0,0,"5",2)
WEnd
Func _Pause()
$Paused = Not $Paused
While $Paused
Sleep(100)
ToolTip('Script is "Paused"',0,0)
WEnd
ToolTip("")
EndFunc
Func _Exit()
Exit
EndFunc
Func _testAx()
MsgBox(0,0,"a1",2)
MsgBox(0,0,"a2",2)
MsgBox(0,0,"a3",2)
_testBx()
MsgBox(0,0,"a4",2)
MsgBox(0,0,"a5",2)
EndFunc
Func _testBx()
MsgBox(0,0,"b1",2)
MsgBox(0,0,"b2",2)
MsgBox(0,0,"b3",2)
_testCx()
MsgBox(0,0,"b4",2)
MsgBox(0,0,"b5",2)
EndFunc
Func _testCx()
MsgBox(0,0,"c1",2)
MsgBox(0,0,"c2",2)
MsgBox(0,0,"c3",2)
MsgBox(0,0,"c4",2)
MsgBox(0,0,"c5",2)
EndFunc