吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10256|回复: 28
上一主题 下一主题
收起左侧

[其他转载] 按键精灵循环找图判断语句

[复制链接]
跳转到指定楼层
楼主
qwe123qwe123 发表于 2020-4-16 17:20 回帖奖励
区域找图:一个固定区域找多张图对比,10张图,找到图一执行A,找到图二执行B。  if判断一直是找到图一,区域找图要怎么找多图判断?


这是我弄的命令:



Call 循环找图()
Sub 循环找图
    Do
        FindPic 955,244,1001,282,"Attachment:\1.bmp", 0.8, 图一X, 图一Y
        FindPic 955,244,1001,282,"Attachment:\2.bmp", 0.8, 图二X, 图二Y
        FindPic 955,244,1001,282,"Attachment:\3.bmp", 0.8, 图三X, 图三Y
        FindPic 955,244,1001,282,"Attachment:\4.bmp", 0.8, 图四X, 图四Y
        FindPic 955,244,1001,282,"Attachment:\5.bmp", 0.8, 图五X, 图五Y
        FindPic 955,244,1001,282,"Attachment:\6.bmp", 0.8, 图六X, 图六Y
        FindPic 955,244,1001,282,"Attachment:\7.bmp", 0.8, 图七X, 图七Y
        FindPic 955,244,1001,282,"Attachment:\8.bmp", 0.8, 图八X, 图八Y
        FindPic 955,244,1001,282,"Attachment:\9.bmp", 0.8, 图九X, 图九Y
        FindPic 955,244,1001,282,"Attachment:\0.bmp", 0.8, 图十X, 图十Y   
        If 图一X > 0 Then
            MoveTo 463,407
            LeftClick 1
            Delay 500
            
        ElseIf 图二X > 0 Then
            MoveTo 500,408
            LeftClick 1
            Delay 500
            
        ElseIf 图三X > 0 Then
            MoveTo 535,408
            LeftClick 1
            Delay 500
            
        ElseIf 图四X > 0 Then
            MoveTo 570,408
            LeftClick 1
            Delay 500
            
        ElseIf 图五X > 0 Then
            MoveTo 606,410
            LeftClick 1
            Delay 500
         
        ElseIf 图六X > 0 Then
            MoveTo 639,407
            LeftClick 1
            Delay 500
           
        ElseIf 图七X > 0 Then
            MoveTo 676,406
            LeftClick 1
            Delay 500
           
        ElseIf 图八X > 0 Then
            MoveTo 708,408
            LeftClick 1
            Delay 500
           
        ElseIf 图九X > 0 Then
            MoveTo 743,407
            LeftClick 1
            Delay 500
           
        ElseIf 图十X > 0 Then      
            MoveTo 429,407
            LeftClick 1
            Delay 500
            
        End If
        
    Loop
   
End Sub

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
z441511709 发表于 2020-4-17 20:50
本帖最后由 z441511709 于 2020-4-17 20:53 编辑
qwe123qwe123 发表于 2020-4-17 18:52
固定区域10选1,找到一张图,然后鼠标点击固定的坐标一次,20分钟一循环。
找到图一 执行  MoveTo 463,4 ...

我给你的就行了啊  把图放到数组里面 然后根据找到的图  I的值就是图片的顺序 在根据I的变量去做选择的动作


Dim tu,i
tu = Array("图0", "图1", "图2", "图3", "图4", "图5", "图6", "图7", "图8", "图9")
Sub 子程序判断()
    Select Case i
    Case 0
        MoveTo 463,407
        LeftClick 1
        Delay 500
    Case 1
        MoveTo 500,408
        LeftClick 1
        Delay 500
    Case 2
        MoveTo 535,408
        LeftClick 1
        Delay 500
    Case 3
        MoveTo 570,408
        LeftClick 1
        Delay 500
    Case 4
        MoveTo 606,410
        LeftClick 1
        Delay 500
    Case 5
        MoveTo 639,407
        LeftClick 1
        Delay 500
    Case 6
        MoveTo 676,406
        LeftClick 1
        Delay 500
    Case 7
        MoveTo 708,408
        LeftClick 1
        Delay 500
    Case 8
        MoveTo 743,407
        LeftClick 1
        Delay 500
    Case 9
        MoveTo 429,407
        LeftClick 1
        Delay 500
    End Select
End Sub
Do //开始找图。
    i = 0
    Do
        FindPic 0,0,1024,768,"Attachment:\"&tu(i)&".bmp",0.5,intX,intY
        If intX > 0 And intY > 0 Then
            TracePrint "找到图" & i & "。"
            Delay 60
            Call 子程序判断()
        Else
            TracePrint "没有找到图"&i&"。"
        End If
        i = i + 1
    Loop Until i = 10
    Delay 100
    TracePrint "进入下一轮找图。"
Loop
推荐
z441511709 发表于 2020-4-16 17:42
本帖最后由 z441511709 于 2020-4-16 17:51 编辑

楼上的方案就行了 如果你要精简代码 就用区域找多图 返回数组 分割数组 得到的坐标值>0  就是存在 直接做动作就行
头像被屏蔽
推荐
xiguazhi 发表于 2020-4-16 17:41
沙发
z441511709 发表于 2020-4-16 17:37
iCoord = Plugin.Bkgnd.FindMultiPic(Hwnd,0,0,1024,768,"C:\图片.bmp",  0, 1.0)
XY = Split(iCoord,"|")
TracePrint XY(0)
TracePrint XY(1)

//可以多个图片路径("C:\图片.bmp|D:\图片.bmp"),或者只要第一个有路径后面都跟随("D:\图片1.bmp|图片2.bmp")。
//查找方向:
//0: 从左到右,从上到下
//1: 从左到右,从下到上
//2: 从右到左,从上到下
//3: 从右到左,从下到上
//失败返回:-1|-1
5#
z441511709 发表于 2020-4-16 17:45
本帖最后由 z441511709 于 2020-4-16 17:49 编辑
xiguazhi 发表于 2020-4-16 17:41
把else if改成if
解析:在执行过程中,if语句执行后就直接跳过判断语句了,后边的else if是直接跳过的。所 ...

是可以 看错了 他要是找到第一张图片就点击第一的坐标 找到第二点击第二 是可行的 就是代码有点长
6#
 楼主| qwe123qwe123 发表于 2020-4-16 17:58 |楼主
z441511709 发表于 2020-4-16 17:45
是可以 看错了 他要是找到第一张图片就点击第一的坐标 找到第二点击第二 是可行的 就是代码有点长

谢谢 我试试
7#
 楼主| qwe123qwe123 发表于 2020-4-16 17:59 |楼主
xiguazhi 发表于 2020-4-16 17:41
把else if改成if
解析:在执行过程中,if语句执行后就直接跳过判断语句了,后边的else if是直接跳过的。所 ...

谢谢了  我试试
8#
ii23456ii 发表于 2020-4-16 18:12
z441511709 发表于 2020-4-16 17:37
iCoord = Plugin.Bkgnd.FindMultiPic(Hwnd,0,0,1024,768,"C:\图片.bmp",  0, 1.0)
XY = Split(iCoord,"|") ...

iCoord = Plugin.Bkgnd.FindMultiPic(Hwnd,0,0,1024,768,"C:\图片.bmp",  0, 1.0)
XY = Split(iCoord,"|")
TracePrint XY(0)
TracePrint XY(1)
请教,返回结果怎么运用?假设找到第一个图的坐标后,要执行以下操作:
第一种要鼠标点击:是Leftclick()还是Leftclick(XY(0))?昨天刚看,不懂,请指教。
第二要鼠标向右拖动500像素距离:怎么写代码,请指教。
9#
 楼主| qwe123qwe123 发表于 2020-4-16 18:15 |楼主
xiguazhi 发表于 2020-4-16 17:41
把else if改成if
解析:在执行过程中,if语句执行后就直接跳过判断语句了,后边的else if是直接跳过的。所 ...

固定区域十张图, 只出一张,我要判断出的是哪一张,然后执行对应的操作,不需要每个操作都执行。
if语句能实现这种判断吗?
10#
我是光光 发表于 2020-4-16 18:47
qwe123qwe123 发表于 2020-4-16 18:15
固定区域十张图, 只出一张,我要判断出的是哪一张,然后执行对应的操作,不需要每个操作都执行。
if语 ...

可以呀,看你这代码好像没有问题,是不是图片的相似度太高了呢?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 07:12

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表