在AutoIt中以编程方式暂停脚本?

时间:2011-11-05 01:54:51

标签: autoit

我可以使用什么功能暂停AutoIt中的脚本?

我知道我可以像这样睡觉:

Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
EndFunc

但是有没有在AutoIt中实现的暂停功能?

3 个答案:

答案 0 :(得分:4)

睡眠已经是AutoIt中的“暂停”功能。

暂停脚本的唯一其他方法是在调试模式下单击trayicon。

答案 1 :(得分:4)

我总是使用热键和函数来暂停我的脚本:

; Create a hot key. I'm using the "Pause/Break" key typically located near the number pad on the keyboard. The keycode for this key is simply "{PAUSE}"
HotKeySet("{PAUSE}", "togglePause")

; Create a Boolean (True of False variable) to tell your program whether or not your program is paused or unpaused. Set it equal to 'False' so the script is running by default.
Global $isPaused = False

; Create the togglePause function to stop/start the script
Func togglePause()
    ; When this function is initiated, the code on the next line 'toggles' the variable to True/False. If the script is unpaused (the $isPaused variable is set to 'False') then the next line will change it to 'True' and vice versa.
    $isPaused = Not $isPaused
    ; Create a while loop to stall the program
    ; The line below is the same thing as "While $isPaused == True"
    While $isPaused
        ; This code will run constantly until the $isPaused variable is set to 'True'. To make the script do nothing, simply add a sleep command.
        Sleep(100)
    WEnd
EndFunc

这可以通过按热键(在这种情况下为 Pause / Break )或只需调用togglePause()来完成。例如:

; Create a hot key. I'm using the "Pause/Break" key typically located near the number pad on the keyboard. The keycode for this key is simply "{PAUSE}"
HotKeySet("{PAUSE}", "togglePause")

; Create a Boolean (True of False variable) to tell your program whether or not your program is paused or unpaused. Set it equal to 'False' so the script is running by default.
Global $isPaused = False

MsgBox(0, "Unpaused", "You are able to see this because the program is unpaused!")

; CODE HERE!

MsgBox(0, "Pausing", "The script will automatically be paused once this dialog closes. Press the pause/break key to unpause!")
togglePause()
Sleep(500)
MsgBox(0, "Ta-Da!", "The script has been manually unpaused!")

; Create the togglePause function to stop/start the script
Func togglePause()
    ; When this function is initiated, the code on the next line 'toggles' the variable to True/False. If the script is unpaused (the $isPaused variable is set to 'False') then the next line will change it to 'True' and vice versa.
    $isPaused = Not $isPaused
    ; Create a while loop to stall the program
    ; The line below is the same thing as "While $isPaused == True"
    While $isPaused
        ; This code will run constantly until the $isPaused variable is set to 'True'. To make the script do nothing, simply add a sleep command.
        Sleep(100)
    WEnd
EndFunc

答案 2 :(得分:3)

您始终可以使用以下方法。我认为这是最有效的。

HotKeySet("{F8}", "StartScript")

While 1
While $script = True
MAIN SCRIPT HERE
    WEnd
WEnd

Func StartScript() ; Functions are normally placed last, making it easier to browse the code.

    If $script = False Then
        $script = True
        ToolTip("Runing|Press F8 to Stop",200,100,"Script Name",1,2)
        Sleep(2000)
        ToolTip("")
    Else
        $script = False
        ToolTip("Stoped|Press F8 to Start",200,100,"Script Name",1,2)
        Sleep(2000)
        ToolTip("")
    EndIf
EndFunc   ; ==> StartScript