欢迎光临散文网 会员登陆 & 注册

【按键精灵】大漠插件如何找图?(参考代码后附)

2023-04-21 23:44 作者:秋天的落葉_  | 我要投稿

找图=找像素=找字,所以我这里不用FindPic,而是用FindStr

FindStr的优点:找寻速度更快,不用截图保存但取而代之的是做字库。(其实FindPic我也没用过......)

步入正题:

1.老规矩把 注册大漠、窗口绑定都写在前面(或者写在子程序中,然后Call来调用,这样显得简洁,程序易读),窗口我就选搜狗浏览器的4399小游戏页面,经抓取,窗口句柄hwnd=123456     ...随便编一个...

2.我要抓洛克王国的图标,打开“大漠综合工具”--勾选浮动抓图--然后会出现一个置顶的蓝色框框,让它覆盖洛克王国,调整好大小

我要找他!
浮动抓图
蓝色框框,调整大小,把洛克覆盖住
1.画勾2.点击色块取色3.选择洛克帽子的色取到的色RGB为462181      4.右面二值化区域只有一个点
1.偏色调为202020(即容差为20),可以看到二值化区域有明显特征,可以作为识别图
1.打开空的字库font.txt  2.提取点阵3.定义文字“洛克”4.按下“回车键”,然后看见右侧列表出现了洛克,就是存入成功了.然后写代码


'-----------主程序如下:------------------ 

Call 注册大漠 

hwnd=123456

Call 窗口绑定 

dm_ret = dm.SetDict(0,"D:\测试\font.txt") //设置字库 

dm_ret = dm.FindStr(0,0,1920,1080,"洛克","462181-202020",1.0,intX,intY) 

If dm_ret=0 Then //dm_ret=0代表找到字样 

    TracePrint "找到图片位置在:" & intX & "," & intY 

    dm.MoveTo intx,inty 

Else 

    TracePrint "没有找到图片" 

End If 

'-----------主程序结束---------------------

'子程序如下,若调用则运行,不调用则不起作用,类似自定义函数。

Sub 注册大漠()

    need_ver = "3.1233"

    set ws=createobject("Wscript.Shell")

    ws.run "regsvr32 atl.dll /s"

    Set ws = nothing

    PutAttachment "D:\测试","*.*" //释放所有附件到D:\测试

    PutAttachment ".\Plugin" ,"RegDll.dll" //释放RegDll.dll,到按键精灵下的plugin文件夹

    Call Plugin.RegDll.Reg("D:\测试\dm.dll") //调用dm.dll

    set dm = createobject("dm.dmsoft")

    ver = dm.Ver()

    If ver = need_ver Then 

        TracePrint "注册成功!"

        Else 

        TracePrint "注册失败"

    End If

    

    Delay 500

End Sub

Sub 窗口绑定()

    dm_ret = dm.BindWindowEx(hwnd,"dx2","dx","dx","dx.public.active.message",4)

    Delay 1000

    If dm_ret = 1 Then 

        TracePrint "绑定成功"

    Else 

        TracePrint "绑定错误,错误码 " & dm.GetLastError()

        If dm.GetLastError() = - 3  Then 

            TracePrint "绑定错误,可能目标窗口有保护 或 异常错误"

        End If

    End If

    Delay 1000

End Sub

Sub OnScriptExit()

    dm_ret = dm.UnBindWindow()

    If dm_ret = 1 Then 

        TracePrint "解除绑定成功"

    End If

End Sub

'------------------------分割线-----------------------------'

程序第八行会输出一个x,y坐标,就是洛克的图标位置,由此实现了用FindStr达到FindPic的功能,而且是后台识图(绑定后的操作全为后台操作)。(可以用按键抓抓验证坐标,将按键抓抓移到洛克的图标处,查看客户端内坐标可以发现,和代码输出的x,y一致。)

完。


【按键精灵】大漠插件如何找图?(参考代码后附)的评论 (共 条)

分享到微博请遵守国家法律