热门IT资讯网

Q语言 我的命令库《通用找图》之后台找字函数源码

发表于:2024-11-24 作者:热门IT资讯网编辑
编辑最后更新 2024年11月24日,'=====================找字命令===============================Function 找字B(字符串,字号,点X1, 点Y1, 点X2, 点Y2)

'=====================找字命令===============================

Function 找字B(字符串,字号,点X1, 点Y1, 点X2, 点Y2)    //    后台找图    Dim iZB, Xy    XY = Plugin.Bkgnd.FindWordShape(Hwnd,clng(点X1), clng(点Y1), clng(点X2), clng(点Y2), 字符串, "", Cint(字号), 0,0.9)    iZB = InStr(XY, "|")    找字_intx=CLng(Left(XY, iZB - 1))    找字_inty=CLng(Right(XY, Len(XY) - iZB))     If 找字_intx >= 0 and 找字_inty >= 0 Then         日志运行内容 = V_当前程序 & "B-------------->找到文字:" & 字符串&"("&找字_intx&","&找字_inty&")"        Call Lib.通用.输出日志(日志运行内容):TracePrint 日志运行内容        找字B=1    Else         日志运行内容 = V_当前程序 & "B未找到文字:" & 字符串        Call Lib.通用.输出日志(日志运行内容) : TracePrint 日志运行内容        找字B=0              End IfEnd FunctionFunction 找字点击B(字符串, 字号, 点X1, 点Y1, 点X2, 点Y2)    Dim 返回值    找字点击B=0    返回值= 找字B(字符串,字号,点X1, 点Y1, 点X2, 点Y2)    If 返回值 > 0 Then         Call Plugin.Bkgnd.MoveTo(Hwnd, 找字_intx + 5, 找字_inty +5)        Delay 50        Call Plugin.Bkgnd.LeftClick(Hwnd, 找字_intx+5, 找字_inty+5)        //        Delay 50        日志运行内容 = V_当前程序 & "B---------->点击文字:" & 字符串        Call Lib.通用.输出日志(日志运行内容):TracePrint 日志运行内容                  找字点击B = 1    End IfEnd FunctionFunction 找多字B(字符串集,字号,点X1, 点Y1, 点X2, 点Y2)    Dim I,返回值,字符串    找多字B = 0    找多字_intX = -1    找多字_intY = -1    字符串 = split(字符串集, "|")    For i = 0 To ubound(字符串)        返回值=找字B (字符串(i),字号,点X1, 点Y1, 点X2, 点Y2)        If 返回值 > 0 Then             日志运行内容 =  V_当前程序&"找到:第" & cstr(i + 1) & "个字符:" & 字符串(i)            Call Lib.通用.输出日志(日志运行内容):TracePrint 日志运行内容            找多字_intX = 找字_intX            找多字_intY = 找字_intY                            找多字B=i+1            Exit For        End If    NextEnd Function

'----------------------以下为带句柄的后台找字-----------------------

Function 找字BC(句柄,字符串,字号,点X1, 点Y1, 点X2, 点Y2)    //    后台找图    Dim iZB, Xy    XY = Plugin.Bkgnd.FindWordShape(句柄,clng(点X1), clng(点Y1), clng(点X2), clng(点Y2), 字符串, "", Cint(字号), 0,0.9)    iZB = InStr(XY, "|")    找字_intx=CLng(Left(XY, iZB - 1))    找字_inty=CLng(Right(XY, Len(XY) - iZB))     If 找字_intx >= 0 and 找字_inty >=0 Then         日志运行内容 = V_当前程序 & "C-------------->找到文字:" & 字符串&"("&找字_intx&","&找字_inty&")"        Call Lib.通用.输出日志(日志运行内容):TracePrint 日志运行内容        找字BC=1    Else         日志运行内容 = V_当前程序 & "B未找到文字:" & 字符串        Call Lib.通用.输出日志(日志运行内容) : TracePrint 日志运行内容        找字BC=0              End IfEnd FunctionFunction 找字点击BC(句柄,字符串,字号,点X1, 点Y1, 点X2, 点Y2)    Dim 返回值    找字点击BC=0    返回值= 找字C(句柄,字符串,字号,点X1, 点Y1, 点X2, 点Y2)    If 返回值 > 0 Then         Call Plugin.Bkgnd.MoveTo(Hwnd, 找字_intx + 5, 找字_inty +5)        Delay 50        Call Plugin.Bkgnd.LeftClick(Hwnd, 找字_intx+5, 找字_inty+5)        //        Delay 50        日志运行内容 = V_当前程序 & "C---------->点击文字:" & 字符串        Call Lib.通用.输出日志(日志运行内容):TracePrint 日志运行内容                  找字点击BC = 1    End IfEnd FunctionFunction 找多字BC(句柄,字符串集,字号,点X1, 点Y1, 点X2, 点Y2)    Dim I,返回值,字符串    找多字BC = 0    找多字_intX = -1    找多字_intY = -1    字符串 = split(字符串集, "|")    For i = 0 To ubound(字符串)        返回值=找字BC(句柄,字符串(i),字号,点X1, 点Y1, 点X2, 点Y2)        If 返回值 > 0 Then             日志运行内容 =  V_当前程序&"找到:第" & cstr(i + 1) & "个字符:" & 字符串(i)            Call Lib.通用.输出日志(日志运行内容):TracePrint 日志运行内容            找多字_intX = 找字_intX            找多字_intY = 找字_intY                            找多字BC=i+1            Exit For        End If    NextEnd Function

'---------------------------------------------

0