按键精灵怎样使用While循环的判断,同时执行下一个命令

因为在操作过程中,很多时候都会弹出错误信息,需要点击确定,这个程序一打开就要点击确定,所以我加了一段While True,但就是跳不到下一步,昨晚我试过成功了,但不知道为什么早上起来改了一下就改不回去了

RunApp "D:\xxxxx.exe"
Delay 1000

JzktB = Plugin.Window.Find("WindowsForms10.Window.8.app.0.33c0d9d", "xxxx")
//找父窗口

While True
Err = Plugin.Window.Find("#32770", 0)
Errb = Plugin.Window.FindEx(Err, 0, "Button", "确定")
Call Plugin.Bkgnd.KeyPress(Errb, 13)
Wend

KeyPress "Win", 1
RunApp "D:\xxxxx.exe"//运行应用
Delay 1000//延时

JzktB = Plugin.Window.Find("WindowsForms10.Window.8.app.0.33c0d9d", "xxxx")
//返回值=找父窗口(类名,标题)

While True //条件满足则
Err = Plugin.Window.Find("#32770", 0) //返回值Err=找父窗口(类名,标题),因为弹窗属于父窗口
Errb = Plugin.Window.FindEx(Err, 0, "Button", "确定")//返回值Errb=找子窗口(父窗口,0,类名,标题)Call Plugin.Bkgnd.KeyPress(Errb, 13)
Wend //结束While
KeyPress "Win", 1 //按下WIN键
我的目的是,在运行While循环时,继续下面代码,即可以运行下面按下WIN键,当出现错误弹窗后,又会自动点击确定

你的代码是我不怎么看的懂,但是我看你的意思是想同时执行2个线程,所以这边给你一个多线程的例子代码,应该可以解决你的问题

Global 变量名,变量2'如果线程里面有道变量,则需要定义全局变量
线程ID=BeginThread(这是线程2)
MessageBox "我是线程1"
Sub 这是一个线程()
    For 10
        MessageBox "我是线程2的执行命令"
    Next
End Sub
MessageBox "我是线程1A"
MessageBox "我是线程1B"

追问

Global 变量名,变量2
有什么用?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-08
For 200
FindCenterColor 0,0,1024,768,B1ADFF,intX,intY
If intX > 0 And intY > 0 Then
MoveTo intX, intY
Delay 200
LeftClick 1
Delay 15000
End If
Next

你这段只判断了找到色的情况,如果没找到色200次空循环一下就走完了

For 200
rem A
FindCenterColor 0,0,1024,768,B1ADFF,intX,intY
If intX > 0 And intY > 0 Then
MoveTo intX, intY
Delay 200
LeftClick 1
Delay 15000
else
delay 100
goto A
End If
Next

改成这样的话,如果没找到图就会一直永远循环下去。。追问

你这个仅仅是循环,完结后再跳转一下步,但再次弹窗需要点确定呢?他是个随机弹窗,总不能下面每一步都加200次循环吧

相似回答