While
루프 및 일부 기능을 포함하는 AutoIt 스크립트를 일시 중지하고 싶습니다. 그러나 나는 HotKeySet()
에서만 원본을 닫을 수있다. 어떻게 일시 중지 할 수 있습니까?일시 중지 while 단축키로 루프
스크립트는 화면의 일부 (x, y 좌표가 구성 파일에 설정되어 있음)의 변경 사항을 확인하고 경고 사운드를 재생 한 후 스크린 샷을 캡처합니다. 일시 중지 버튼을 누를 때 While
루프가 중지되지 않습니다. 그러나 프로그램을 닫으면 작동합니다. 나는 while1 루프 일부 기능 내용을 포함하는 AutoIt이 스크립트를 일시 정지 할
Global $Paused, $counter = 0
HotKeySet("{1}", "TogglePause")
HotKeySet("{2}", "Terminate")
HotKeySet("{3}", "ShowMessage")
Init()
Start()
While 1
$counter +=1
ToolTip('Script is "Running"',0,0, $counter, 1)
Sleep(700)
Switch TrayGetMsg()
Case $resume
Start()
DisableAlert()
Case $exit
ExitLoop
Exit
EndSwitch
WEnd
//some of the functions
Func Start()
$ready = 0
$count = 0
$lastScreenshotNum = 0
TrayItemSetState($resume, $TRAY_DISABLE)
TraySetIcon("on.ico")
TakeScreenshot()
AdlibRegister(TakeScreenshot,2000)
EndFunc
Func Stop()
AdlibUnRegister(TakeScreenshot)
TraySetIcon("off.ico")
TrayItemSetState($resume, $TRAY_ENABLE)
EndFunc
Func TogglePause()
Stop()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('Script is "Paused"',0,0, $counter, 1)
WEnd
ToolTip("")
EndFunc
Func Terminate()
Exit 0
EndFunc
Func ShowMessage()
MsgBox(4096,"","This is a message.")
EndFunc
Func EnableAlert()
SendMail()
Alert()
AdlibRegister(Alert,5000)
EndFunc
Func DisableAlert()
AdlibUnRegister(Alert)
EndFunc
Func Alert()
SoundPlay("alert.mp3")
EndFunc
귀하의 TogglePause 기능은 스크린 샷을 일시 정지하지 않습니다,하지만 당신은 다시 전환 싶어요. NOT $ Paused이면 TogglePause의 끝에서 Start()를 추가하십시오. 그것은 작동합니다. – Milos