【按键精灵】N秒内找图函数封装

按键精灵提供的找图是即时找图,在网络延迟、加载缓慢等情况下,提高脚本的机动性是非常有必要的。

为了实现简单的N秒内找图,需要用另一个线程计算延时时间,参考下方流程图。

 首先,要定义全局变量"hid"和"超时时间",然后定义超时检测的线程

DimEnv hid1, 超时时间
Sub 超时检测
    Delay 超时时间
    超时时间 = 0 //为什么这样设置?看下去
End Sub

接着开始执行N秒内找图

Function 找图(区域, 图片路径, 相似度, 查询前延时, 查询后延时, 超时设定)
//超时设定:Array(N, ms) 是否超时设定?
//               0:不检查超时(找到为止)
//               1:ms毫秒后超时
    //变量定义
    Dim inx, iny, enx, eny, imgPath, res

    //变量赋值
    res = Array(-1, -1)
    If 超时设定(0) > 0 Then 
        超时时间 = 超时设定(1) //给检测超时定义一个时间
    End If

    //设置搜索的区域
    If 区域(0) = -1 Then //全屏,参数是Array(-1, ~, ~, ~)
        inx = 0
        iny = 0
        enx = WIDTH
        eny = HEIGHT
    Else                 //使用参数的区域
        inx = 区域(0)
        iny = 区域(1)
        enx = 区域(2)
        eny = 区域(3)
    End If

    Delay 查询前延时

    //线程检查超时
    hid = BeginThread(超时检测) //启动并记录线程id

    While 超时时间 > 0 and res(0) < 0
    //超时时间>0是在超时检测线程中出现的数值变化
    //res是得到的结果,如果找到了,就不用等超时
        FindPic inx, iny, enx, eny, 图片路径, 相似度, res(0), res(1)
    Wend

    Delay 查询后延时

    //线程停止(无论有没有结果),目的是连续使用不会发生错误
    StopThread(hid)

    //结果返回
    找图 = res
End Function

调用方法如下

//全屏范围下10秒内找到附件中的tgt.bmp图形,相似度0.8,查找前延时300ms,查找后延时200ms
ans1 = 找图(Array(-1, 0, 0, 0), "Attachment:\tgt.bmp", 0.8, 300, 200, Array(1, 10 * 1000))

//指定范围找到C:\o.bmp图形,相似度0.5
ans2 = 找图(Array(x1, y1, x2, y2), "C:\o.bmp", 0.5, 0, 0, Array(0, 0))

 截止目前,已经可以弹性地找图并得到结果了。如果是设定弹性地搜索并点击图形,可以多设置一个函数,判断找图是否有结果,有则点击即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值