Autohotkey循环不起作用
问题描述:
我的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
}
答
WinWait看起来像一个可能的罪魁祸首像anthv123说。仔细检查你的窗口标题,并确保它符合你期望的TitleMatchMode。
常见的调试做法包括在问题代码中添加不同的ToolTip。例如,在WinWait行的上方和下方,文本“之前”和“之后”的工具提示会告诉您它是否无限期地停留在该部分(如果它从不在“之后”)。
睡3-20秒也不会帮助你的耐心。
答
请尝试使用它来诊断问题。如果“批量读数”花费的时间超过5秒,您会收到一条错误,让您知道并且循环继续。
WinWait, Batch Readings,,5
if (errorLevel = 1)
Msgbox % "Batch Readings timed out"
是否有可能您只是不够等待?那些睡眠值似乎有点长... 或者,您的WinWait在通过循环的第二次运行时是否正常工作?另一个窗口是否在偷窃焦点,以便将其他命令发送到错误的地方? – andrewdotnich