按键精灵指定区域找图,匹配附件多个图中任意一个符合即可,怎么表达?
答案:1 悬赏:80 手机版
解决时间 2021-04-01 20:52
- 提问者网友:捧腹剧
- 2021-04-01 09:10
按键精灵指定区域找图,匹配附件多个图中任意一个符合即可,怎么表达?
最佳答案
- 五星知识达人网友:思契十里
- 2021-04-01 10:38
按键精灵附件只能添加一个图片(本人没有用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个附件名称编列,用这一小段代码就能循环匹配了,我之前是逐个写的简直崩溃了,给你加分非常感谢!
我这里以找图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个附件名称编列,用这一小段代码就能循环匹配了,我之前是逐个写的简直崩溃了,给你加分非常感谢!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯