在下面的腳本中,我嘗試運行一系列命令。但是當按F1運行時,命令將立即在兩個對方之後運行兩個SendAndLoopFor()
調用,而無需等待內部循環完成。如何等待函數完成時使用內部循環
我試圖通過在函數內添加一個return「」來強制這個等待,並用它來分配一個變量Foo := SendAndLoopFor()
,但即使那樣它也不會等待操作。
有沒有辦法在執行下一個命令之前等待SendAndLoopFor()
命令的完成?
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
#MaxThreadsPerHotkey 13
#SingleInstance
F1::
Done = 0
Toggle := !Toggle
Loop
{
If (!Toggle)
Break
SendAndLoopFor("4", -13600)
SendAndLoopFor("5", -13600)
}
return
SendAndLoopFor(TSend="", Timeout=0)
{
Send %TSend%
SetTimer, LoopLimit, %Timeout%
Loop
{
If(!Toggle)
Break
If(done == 1)
{
done = 0
Break
}
MouseClick, left
sleep 83
}
}
LoopLimit:
Done = 1
Return
您需要SendAndLoopFor之前返回()。而你指的是一個不存在的標籤,名爲LoopLimit –
啊,我確實忘了包括那件。稍後編輯它 –
AutoHotkey會按順序運行它們,但是您的'SendAndLoopFor'循環只有83毫秒的「睡眠」時間。這是故意的嗎?因爲你目前的延遲幾乎感覺不到。 –