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

'---------------------后台找图B-------------------------------------
Function 找图B(pictname)
// 后台找图
Dim icoord, Xy
iCoord = Plugin.Bkgnd.FindPic(Hwnd, 0, 0,Lib.通用.getwindow_X(Hwnd) - 1,Lib.通用.getwindow_Y(Hwnd) - 1, bmp_path & pictname, 0, 0.6)
XY = Split(iCoord,"|")
找图_intx= XY(0)
找图_inty= XY(1)
If 找图_intx >= 0 and 找图_inty >= 0 Then
日志运行内容 = V_当前程序 & "B-------------->找到图:" & pictname&"("&找图_intx&","&找图_inty&")"
Call Lib.通用.输出日志(日志运行内容):TracePrint 日志运行内容
找图B=1
Else
日志运行内容 = V_当前程序 & "B未找到图:" & pictname
Call Lib.通用.输出日志(日志运行内容) : TracePrint 日志运行内容
找图B=0
End If
Call Lib.通用.检索pictname(pictname)
// Call Lib.通用.存pictname(文件名称)
End Function
Function 找图点击B(pictname, 偏移X, 偏移Y)
Dim 返回值
找图点击B=0
返回值= 找图B(pictname)
If 返回值 > 0 Then
Call Plugin.Bkgnd.MoveTo(Hwnd, 找图_intX + cint(偏移X), 找图_intY + cint(偏移Y))
Delay 50
Call Plugin.Bkgnd.LeftClick(Hwnd, 找图_intX+cint(偏移X), 找图_intY+cint(偏移Y))
日志运行内容 = V_当前程序 & "B---------->点击图:" & pictname
Call Lib.通用.输出日志(日志运行内容):TracePrint 日志运行内容
找图点击B = 1
End If
End Function
Function 找多图B(pictname)
Dim I,返回值,图片
找多图B = 0
找多图_intX = -1
找多图_intY = -1
图片 = split(pictname, "|")
For i = 0 To ubound(图片)
返回值=找图B (图片(i))
If 返回值 > 0 Then
日志运行内容 = V_当前程序&"找到:第" & cstr(i + 1) & "张图片:" & 图片(i)
Call Lib.通用.输出日志(日志运行内容):TracePrint 日志运行内容
找多图_intX = 找图_intX
找多图_intY = 找图_intY
找多图B=i+1
Exit For
End If
Next
End Function
Function 找多图点击B(pictname, 偏移X, 偏移Y)
Dim 返回值
找多图点击B=0
返回值= 找多图B(pictname)
If 返回值 > 0 Then
Call Plugin.Bkgnd.MoveTo(Hwnd, 找多图_intX + cint(偏移X), 找多图_intY + cint(偏移Y))
Delay 50
Call Plugin.Bkgnd.LeftClick(Hwnd, 找多图_intX+cint(偏移X), 找多图_intY+cint(偏移Y))
日志运行内容 = V_当前程序&"A------------->点击图片:"&pictname
Call Lib.通用.输出日志(日志运行内容):TracePrint 日志运行内容
找多图点击B = 返回值
End If
End Function
Function 等图B(pictname)
Dim 返回值
日志运行内容 = V_当前程序&"B正在等待图片....:" & pictname
Call Lib.通用.输出日志(日志运行内容):TracePrint 日志运行内容
等图B=0
等图_intX = -1
等图_intY = -1
For 10000
返回值 = 找图B(pictname)
If 返回值 > 0 Then
日志运行内容 = V_当前程序&"B------------->等到图片:" & pictname
Call Lib.通用.输出日志(日志运行内容):TracePrint 日志运行内容
等图_intX = 找图_intX
等图_intY = 找图_intY
等图B=1
Exit For
End If
Delay 500
Next
End Function
Function 等图点击B(pictname, 偏移X, 偏移Y)
Dim 返回值
日志运行内容 = V_当前程序&"正在等待点击图片....:" & pictname
Call Lib.通用.输出日志(日志运行内容):TracePrint 日志运行内容
等图点击B = 0
等图_intX = -1
等图_intY = -1
For 10000
返回值 = 找图B(pictname)
If 返回值 > 0 Then
等图_intX = 找图_intX
等图_intY = 找图_intY
Call Plugin.Bkgnd.MoveTo(Hwnd, 等图_intX + cint(偏移X), 等图_intY + cint(偏移Y))
Delay 50
Call Plugin.Bkgnd.LeftClick(Hwnd, 等图_intX+cint(偏移X), 等图_intY+cint(偏移Y))
日志运行内容 = V_当前程序&"B-------------->点击图片:" & pictname
Call Lib.通用.输出日志(日志运行内容):TracePrint 日志运行内容
等图点击B=1
Exit For
End If
Delay 500
Next
End Function
Function 等多图B(pictname)
Dim 返回值
等多图B=0
等多图_intX = -1
等多图_intY = -1
For 10000
返回值=找多图B(pictname)
If 返回值 > 0 Then
等多图B = 返回值
等多图_intX = 找多图_intX
等多图_intY = 找多图_intY
Exit For
End If
日志运行内容 = V_当前程序&"遍历一次,未等到所有图片"
Call Lib.通用.输出日志(日志运行内容):TracePrint 日志运行内容
Delay 500
Next
End Function

猜你喜欢

转载自blog.51cto.com/12815848/2441362