While
ループといくつかの機能を含むAutoItスクリプトを一時停止したい。しかし、私はHotKeySet()
でスクリプトを閉じることしかできません。どのように私はそれを一時停止することができますか?ループをホットキーで繰り返す
スクリプトは、画面の一部(x、y座標は設定ファイルに設定されています)の変更を確認し、警告音を鳴らした後にスクリーンショットを取得します。一時停止ボタンを押したときにループが終了することはありません。While
しかし、プログラムを終了すると動作します。ここに私のコードは次のとおりです。
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 $を一時停止し、TogglePauseの最後にStart()を追加します。できます。 – Milos