2011-10-06 231 views
0

我的autohotkey腳本中的循環只能運行一次。誰能告訴我爲什麼?謝謝Autohotkey循環不起作用

Loop, 8 
{ 
    WinActivate, NDTr 
    ControlClick, Button3 ;Select Batch, enter info, start collecting data 
    WinWait, Batch Readings 
    ControlClick, Edit1 
    Send {BS}+{BS}+{BS}+{BS}+{BS}+{BS} 
    Send 1 
    ControlClick, Edit2 
    Send {BS}+{BS}+{BS}+{BS}+{BS}+{BS} 
    Send 15 

    if A_Index = 4 
    { 
    Sleep, 20000 
    } 
    else if A_Index = 7 
    { 
    Sleep, 20000 
    } 
    else if A_Index = 1 
    { 
    Sleep, 3000 
    } 
    else 
    { 
    Sleep, 15000 
    } 

    ControlClick, Button1 
    Sleep, 15000 
} 
+1

是否有可能您只是不夠等待?那些睡眠值似乎有點長... 或者,您的WinWait在通過循環的第二次運行時是否正常工作?另一個窗口是否在偷竊焦點,以便將其他命令發送到錯誤的地方? – andrewdotnich

回答

1

WinWait看起來像一個可能的罪魁禍首像anthv123說。仔細檢查你的窗口標題,並確保它符合你期望的TitleMatchMode

常見的調試做法包括在問題代碼中添加不同的ToolTip。例如,在WinWait行的上方和下方,文本「之前」和「之後」的工具提示會告訴您它是否無限期地停留在該部分(如果它從不在「之後」)。

睡3-20秒也不會幫助你的耐心。

1

請嘗試使用它來診斷問題。如果「批量讀數」花費的時間超過5秒,您會收到一條錯誤,讓您知道並且循環繼續。

WinWait, Batch Readings,,5 
if (errorLevel = 1) 
    Msgbox % "Batch Readings timed out"