按键精灵 脚本图片判断

FindPic1369,801,1387,820,"Attachment:\图片A.bmp",0.9,intX,intYIfintX>0AndintY>0ThenDela... FindPic 1369, 801, 1387, 820,"Attachment:\图片A.bmp",0.9,intX,intY
If intX > 0 And intY > 0 Then
Delay 1000
FindPic 0,0,1440,900,"Attachment:\1.bmp",0.9,aaX,aaY
If aaX > 0 And aaY > 0 Then
MoveTo aaX , aaY
Delay 1000
LeftClick 1
Delay 1000
FindPic 0,0,1440,900,"Attachment:\9.bmp",0.9,bbX,bbY
If bbX > 0 And bbY > 0 Then
MoveTo bbX , bbY
Delay 1000
LeftClick 1
Delay 1000

ElseIf intX <= 0 And intY <= 0 Then
FindPic 1369, 801, 1387, 820,"Attachment:\图片B.bmp",0.9,iX,iY
If iX > 0 And iY > 0 Then
Delay 1000
FindPic 0,0,1440,900,"Attachment:\0.bmp",0.9,intX,intY
If intX > 0 And intY > 0 Then
MoveTo intX , intY
Delay 1000
LeftClick 1
Delay 1000
FindPic 0,0,1440,900,"Attachment:\2.bmp",0.9,intX,intY
If intX > 0 And intY > 0 Then
MoveTo intX , intY
Delay 1000
LeftClick 1
Delay 1000
End If
End If
End If
End If
End If
End If

这个哪里错了啊
怎么找不到图片A. 不继续找图片B啊
展开
 我来答
帐号已注销
2013-11-03 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6449
采纳率:69%
帮助的人:2104万
展开全部
显然,你的程序逻辑错了,为了清晰的表示你的逻辑,我调整了你代码的位置,希望你以后能够养成一个好的程序习惯,便于检查和分析,我没有改变你代码,只是在适当的位置低格了:
FindPic 1369, 801, 1387, 820, "Attachment:\图片A.bmp", 0.9, intX, intY
If intX > 0 And intY > 0 Then
Delay 1000
FindPic 0, 0, 1440, 900, "Attachment:\1.bmp", 0.9, aaX, aaY
If aaX > 0 And aaY > 0 Then
MoveTo aaX, aaY
Delay 1000
LeftClick 1
Delay 1000

FindPic 0, 0, 1440, 900, "Attachment:\9.bmp", 0.9, bbX, bbY
If bbX > 0 And bbY > 0 Then
MoveTo bbX, bbY
Delay 1000
LeftClick 1
Delay 1000

ElseIf intX <= 0 And intY <= 0 Then
FindPic 1369, 801, 1387, 820, "Attachment:\图片B.bmp", 0.9, iX, iY
If iX > 0 And iY > 0 Then
Delay 1000

FindPic 0, 0, 1440, 900, "Attachment:\0.bmp", 0.9, intX, intY
If intX > 0 And intY > 0 Then
MoveTo intX, intY
Delay 1000
LeftClick 1
Delay 1000

FindPic 0, 0, 1440, 900, "Attachment:\2.bmp", 0.9, intX, intY
If intX > 0 And intY > 0 Then
MoveTo intX, intY
Delay 1000
LeftClick 1
Delay 1000
End If
End If
End If
End If
End If
End If

你的程序结构是:
FindPic 1369, 801, 1387, 820, "Attachment:\图片A.bmp", 0.9, intX, intY
If intX > 0 And intY > 0 Then
//中间有许多代码。
End If

显然,你的逻辑,如果没有找到图,中间那么多代码是不会执行的,你看下面两个例子:
//例子1,条件是a>0和b>0,c=0;a>0和b<=0,c=1;a<=0时,不执行第二个if
If a > 0 Then
If b > 0 Then
c = 0
Else
c = 1
End If
End If

//例子2,条件是a>0和b>0,c=0;a<=0时,c=0,不执行第二个if
If a > 0 Then
If b > 0 Then
c = 0
End If
Else
c = 1
End If

你用到的逻辑是例子2,但是你写的逻辑是例子1,下面我根据你的变量,大概知道你的逻辑,帮你修改了一下,你再理解的基础上可以再更改,代码如下:
FindPic 1369, 801, 1387, 820, "Attachment:\图片A.bmp", 0.9, intX, intY
If intX > 0 And intY > 0 Then
Delay 1000
FindPic 0, 0, 1440, 900, "Attachment:\1.bmp", 0.9, aaX, aaY
If aaX > 0 And aaY > 0 Then
MoveTo aaX, aaY
Delay 1000
LeftClick 1
Delay 1000
End If
//找图1执行完了,要结束这个条件语句,如果没有End If,就变成了必须找到图1,才执行下面找图9

FindPic 0, 0, 1440, 900, "Attachment:\9.bmp", 0.9, bbX, bbY
If bbX > 0 And bbY > 0 Then
MoveTo bbX, bbY
Delay 1000
LeftClick 1
Delay 1000
End If //找图9执行完了,要结束这个条件语句。

//下面找图B里面的End If和上面一样,我就不再详细解释了。
ElseIf intX <= 0 And intY <= 0 Then //这里可以直接写Else
FindPic 1369, 801, 1387, 820, "Attachment:\图片B.bmp", 0.9, iX, iY
If iX > 0 And iY > 0 Then
Delay 1000

FindPic 0, 0, 1440, 900, "Attachment:\0.bmp", 0.9, intX, intY
If intX > 0 And intY > 0 Then
MoveTo intX, intY
Delay 1000
LeftClick 1
Delay 1000
End If

FindPic 0, 0, 1440, 900, "Attachment:\2.bmp", 0.9, intX, intY
If intX > 0 And intY > 0 Then
MoveTo intX, intY
Delay 1000
LeftClick 1
Delay 1000
End If
End If
End If
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
正直的童心未泯
2013-11-03 · TA获得超过174个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:123万
展开全部
思路不清晰 逻辑不严谨 条理混乱 代码难以读懂 我还是先解释下你的代码吧 解释完你应该明白了
首先 找图a 如果找到 那么延迟100毫秒 找图1 如果图1也找到 那么动作 找图9 如果图9也找到 那么动作 (找图1的先决条件是要找到图a 而找图9的先决条件是找到图a和图1 如果图a都没找到 那么找图1代码不会执行 找图9 就更不会执行了)
ElseIf intX <= 0 And intY <= 0 Then ?( 病句 ) 这个是什么? 否则如果? 这句话是想对应找图a命令吧 如果是这样 那么你应该找完图1和找完图9 动作下面就应该加结束语句 要不然这句话就是对应离它最近的if 也就是找图9的那个了 下面两个和上面一样 就不多解释了
ElseIf要对应在它上面而且离它最近的if判断 如果想对应最上面的 需要把中间两个if判断结束 才会跑到上面去 还有就是 你那个否则如果 只要判断一个坐标就可以了 ElseIf intX <0 只要有一个坐标小于0 也就是在屏幕范围外面 那么这个点是不可能存在的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
maozz
2013-11-03 · TA获得超过2037个赞
知道大有可为答主
回答量:2063
采纳率:92%
帮助的人:1239万
展开全部
脚本逻辑错误

FindPic 1369, 801, 1387, 820,"Attachment:\图片A.bmp",0.9,intX,intY

If intX > 0 And intY > 0 Then

//找到图A后的操作
Else//否则,找图B

FindPic 1369, 801, 1387, 820,"Attachment:\图片B.bmp",0.9,iX,iY

End If

一个if对应一个end if ,写if 的时候把end if一起写了,不要最后才来补,你这样写出来会很混乱.
追问
End If
不是必须写在最后面么?
追答
好好看看基础吧...多层判断之间的嵌套,和多层循环是一样的,首先需要理清逻辑和思路,要不然写出来的东西语法没错,执行起来也是达不到效果的.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式