可能问题没有描述准备,大家误会了。for循环中并不是只有一个找图操作,能找不到就跳过。而是很多操作,而且在任何一步都可能出错,出错以后一般就用线程暂停,然后手工操作本次循环剩余的操作,再继续i+1的下次循环。循环中的Call子程序,基本是do...Loop找图确认界面,所以出错基本不会继续往后运行可以用线程暂停。
Sub departure()
Call 查找句柄()
Call cz()
Call ck()
Call ckxs()
Call gbck()
Dim Train,Line
Dim City(11)
City(0)="巴黎"
City(1)="纽约"
City(2)= "北京"
City(3)="东京"
City(4)="新德里"
City(5)= "洛杉矶"
City(6)="安克雷奇"
City(7)= "夏威夷"
City(8)="伦敦"
City(9)= "华盛顿"
City(10)="马德里"
City(11) = "多伦多"
Delay 100
// 问题出现区域
For i = 0 To 11
Call jck()
Call qk()
Delay 50
Call Plugin.WndEx7_70.SetFakeActive(Hwnd, 0)
Delay 50
Call Plugin.Bkgnd.SendString(Hwnd, City(i))
Delay 100
Call Plugin.Bkgnd.LeftClick(Hwnd, 295, 535)
Call ck()
Dim CxArray
CxArray =Array(Ca,Cb,Cc,Cd,Ce,Cf)
Ca = Form1.ComboBox7.ListIndex
Cb = Form1.ComboBox8.ListIndex
Cc = Form1.ComboBox9.ListIndex
Cd = Form1.ComboBox10.ListIndex
Ce = Form1.ComboBox11.ListIndex
Cf = Form1.ComboBox12.ListIndex
If i=0 or i=1 then
Train=Ca
ElseIf i = 2 or i = 3 Then
Train=Cb
ElseIf i = 4 or i = 5 Then
Train=Cc
ElseIf i = 6 or i = 7 Then
Train=Cd
ElseIf i = 8 or i = 9 Then
Train = Ce + 2
ElseIf i = 10 or i = 11 Then
Train = Cf + 2
Else
MessageBox "车辆设置错误,停止运行"
EndScript
End If
Delay 100
TracePrint Train
If Train = 1 Then
Call swsc()
ElseIf Train = 2 Then
Call swcx()
ElseIf Train = 3 Then
Call xzsc()
ElseIf Train = 4 Then
Call xzcx()
End If
Delay 100
Call Plugin.Bkgnd.LeftClick(Hwnd, 720, 550)
Delay 100
Call cz()
Delay 100
Form1.InputBox1.Text = City(i) & "完成"
Delay 100
Next
// 问题出现区域
Delay 100
Form1.InputBox1.Text = "全部完成"
Delay 100
End Sub