按键精灵指定区域找图,匹配附件多个图中任意一个符合即可,怎么表达?

我做了图1,图2,图3,图4.......共十个图存到附件里用做模拟(实际应用有150多个),然后在指定区域找图,要是区域内的图与附件这10个图中任意一个符合即判断为是,这句子该如何表达??要能简洁书写的,因为要是单独判断实际中需要写150个太繁杂用不了,能不能表达为下面这样,求高手指点!!

实际测试用不了(有误)
Dim intX,intY
FindPic 808, 113, 903, 241, "Attachment:图1.png" or "Attachment:图2.png" or "Attachment:图3.png" or "Attachment:图4.png", "000000", 0, 0.8, intX, intY
If intX > -1 and intY > -1 Then
TracePrint "区域内的图符合附件中的某个图!"
Delay 100
EndScript
End If
TracePrint "区域内的图不符合附件中的图!!"
Delay 100
EndScript

1、首先打开按键精灵界面,新建脚本。

2、选择空白脚本,然后点确定。

3、1.新手就选普通。2.选择颜色/图形命令。3.选择找图命令。4.根据你电脑分辨率多大填即可。5.如果附件找图,就打勾,改截图的重命名名称。6.相似度0.7到1.0随意。7.坐标也可以随意修改,默认也可以。

4、点击抓抓,然后再点击图像,最后有个按钮截屏,截屏一下。并且要找的图,截图下来,并保存下来。

5、插入,鼠标移动到点击条件结束。

6、最后添加坐标  intX,intY.  那么基本操作就好了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-11-11
按键精灵附件只能添加一个图片(本人没有用9.6以后的按键精灵了,不知道后面版本支不支持多图),里面的函数参数条件都是有规定的,不是你想怎样就怎样,如果你真有150个图,那么你只能找150次图,还有,按键精灵的图片是bmp格式的,格式也有规定,完全了解了函数再用。追问

要是单独找150次,就要写150次,而且要找20个地方,这样就是3000次了,这写不了,所以看看有没有简洁的写法,另外我写的是按键手机版的,所以图片是PNG的!电脑版的才是BMP!

追答

有简单的写法,注意,只是写法简单,执行效率其实和写150次找图差不多。
我这里以找图1-图4这四个图片为例:
Result=0
For i=1 To 4
FindPic 808, 113, 903, 241, "Attachment:图"&i&".png" , "000000", 0, 0.8, x, y
If x>0 Then
TracePrint "图"&i&"已找到"
Result=1
End If
Next
If Result=0 Then
TracePrint "图没已找到"
End If
如果你这20个地方的找图区域是有规律的,也可以用For 循环结合数组简化代码,不过,不管代码怎么写,3000次找图是必须要的。

追问

那可不可以用调用的思路?

也就是先做好了150个需要识别的图的代码,

然后

匹配第一个位置,调用这段识别代码,识别到有匹配图标记,没识别到往下。

匹配第二个位置,调用这段识别代码,识别到有匹配图标记,没识别到往下。

匹配第三个位置,调用这段识别代码,识别到有匹配图标记,没识别到往下。

.......

这样实际上要写的关键点就只有150个了,

但在实际操作中会发现定义名称重复问题,跳转链接不上!

追答

不清楚你的操作,所以无法帮你实现算法,如果只是识别数字,不需要找150个图,找10张图即可。手机按键精灵没有ocr函数,TC就有,ocr函数更方便

追问

不是识别数字,是识别图,上图只是为简单化用 测试,你联系方式是多少啊,可以有偿帮我解决下!还有手机版和PC版好像有些区别,你上面思路好像可行,把附件名列1-150,然后循环调用,但我调试不成功,能详解吗?

追答

你的逻辑是错的,和我给你的代码逻辑不一样,根据你的意思,是出现其中任何一个图片,而你的代码是:如果第一个图片没有找到,第一个TracePrint就没有输出,接着就执行了第二个TracePrint,然后就结束脚本了,所以,你的代码只是找了一次图1就结束了,并没有继续找图2,你看我那段代码,是四个图都找了,如果找到一个,Result=1说明找到图,如果没找到任何一个图,Result仍然和最初一样,等于0,所以我最后要判断Result的值就是为了确定有没有找到其中一个图。
你调试代码的时候,你先单独找某个图,确定那个图能找到,再调试For里面的代码,要不你怎么知道是图本身找不到还是代码原因?这个代码在电脑端是可以的,手机端我想也应该支持字符串连接。

追问

太感谢你了,苦想了几天几夜,终于在你的指点下解决了!你的思路是对的,是EndScript打断了循环,我把它去掉后预设匹配3符合,测试时候匹配第三次识别到了!实际应用我会把150个附件名称编列,用这一小段代码就能循环匹配了,我之前是逐个写的简直崩溃了,给你加分非常感谢!

本回答被提问者和网友采纳
第2个回答  2019-04-25
安卓版按键精灵可以这样用
FindPic 0,0,0,0,"Attachment:1.png|Attachment:2.png|Attachment:3.png|Attachment:4.png","000000",0,0.8,intX,intY
第3个回答  2023-02-13
你这个解决了吗

按键精灵指定区域找图,匹配附件多个图中任意一个符合即可,怎么表达?
1、首先打开按键精灵界面,新建脚本。2、选择空白脚本,然后点确定。3、1.新手就选普通。2.选择颜色\/图形命令。3.选择找图命令。4.根据你电脑分辨率多大填即可。5.如果附件找图,就打勾,改截图的重命名名称。6.相似度0.7到1.0随意。7.坐标也可以随意修改,默认也可以。4、点击抓抓,然后再点击...

按键精灵在一个区域内查图,四种可能性,分别对应执行命令怎么写代码?
1 LeftClick 1 ElseIf intX > 0 And intY > 0 and i = 2 Then MessageBox "找到图2" MoveTo 2, 2 LeftClick 1 ElseIf intX > 0 And intY > 0 and i = 3 Then MessageBox "找到图3" MoveTo 3, 3 LeftClick 1 ElseIf intX > 0 And intY > ...

按键精灵 如何在循环中,找两张图,找到其中随意一张图就跳出循环!
1、首先在桌面上按下Print Screen键,截下整个桌面的截图。2、然后打开按键精灵新建脚本,切换图像能看见刚才截的图。3、点击鼠标拖动鼠标,图片另存为自己能找到的文件夹内,图片格式为BMP。4、执行代码:FindPic 0,0,1024,768,"C:\\按键精灵2014\\01.bmp",0.9,intX,intYIf intX > 0 And intY...

按键精灵找出符合条件的图片或者其他编程找出符合条件的图片?
默认的命令是【左键单击】,点击【下拉框】还可以看到其他的鼠标命令,例如【右键单击】、【左键双击】等等。我们就使用【左键点击】就可以了,循环按键次数我们先设置为“1次”,最后点击【插入】。按键精灵提供了非常简单的插入脚本方式,使用普通命令面板就可以完成整个插入脚本的过程。我们要制作的是鼠...

按键精灵找一张图有三个不同范围三个结果,其中一个达成就停止执行其它代 ...
Exit Do End If Delay 1000 TracePrint intXLoopTracePrint intX\/\/这里放找到图然后退出找图循环后的代码在判断语句里面增加想要的条件就好了,比如我这个就是三个判断,判断找到图片的坐标点是在屏幕的左边,中间,和右边,用X也就是屏幕分辨率的宽度乘以0.33,0.66和分辨率本身来判断图片在哪...

按键精灵找图后有多个匹配目标怎么编写脚本?
找图的时候是从左到右从上到下的顺序 如果 屏幕上同时出现多个图片 找图会返回最上面一排的最左边一个

按键精灵 区域找图多图判断
bmp",0.9,intX,intY If intX > 0 And intY > 0 Then Call B1 Exit Do End If FindPic 0,0,1024,768,"Attachment:\\C1.bmp",0.9,intX,intY If intX > 0 And intY > 0 Then Call C1 Exit Do End If Loop 循环找图。直到找到三张图片里的任意一张时执行响应操作后结束 ...

按键精灵,区域找图
语句,没问题,估计图片附件有点问题 不知道你用哪个版本按键精灵,6.3以上可以直接找到附件图片,6.3以下要把附件释放才能找到 建议跳转语句(goto 开始) 前面加入结果测试语句 MessageBox intx&","&inty 如果弹出的数值大于0就是找到图了,否则检测下附件 ...

按键精灵找图点击怎么设置 按键精灵找图点击设置方法
10、然后将红框内的文件名改为图片的名称,可以调整图片的相似度,如果图片在所找的区域内没有相似的图片,就可以调得低一些,反之就调得高一些 11、注意要勾选【使用附件图片路径】,然后点击插入 12、现在就只需要添加鼠标点击的命令了,在【则】后面添加语句,也是图中箭头指示的位置 按键精灵使用...

按键精灵里怎么在指定区域找图
按键精灵 用抓抓 先抓住左上角的点(x1,y1) 再抓住右下角的点(x2,y2)然后 写的时候 依次是 x1,y1,x2,y2

相似回答