本帖最后由 hlzxcjx 于 2023-10-9 22:17 编辑
au3的找色函数PixelGetColor 效率太低,而区域找色PixelSearch经常定位不准,于是尝试用大漠插件,发现大漠插件GetColor函数与au3一样效率低,再尝试大漠插件的区域找色函数FindColor,却不懂其颜色格式"RRGGBB-DRDGDB"的用法,望各位赐教!
大漠插件:#AutoIt3Wrapper_UseX64=n
RunWait(@ComSpec & ' /c regsvr32 /s ' & 'dm.dll', '', @SW_HIDE)
Global $DM = ObjCreate("dm.dmsoft")
If IsObj($DM) Then
$ver = $DM.Ver()
ConsoleWrite('当前大漠插件版本:' & $ver & @CRLF)
Else
MsgBox(64, '提示:', '注册大漠插件失败!!!')
Exit
EndIf
;---------------------------------------------------这个与au3同样慢!
;for $x=0 to 100
;$color = $DM.GetColor($x,600)
;MouseMove($x,600,0)
;Next
;MsgBox(0,0,$color)
;---------------------------------------------------这个与au3同样慢!
Global $intX, $intY
$var = $DM.FindColor(@DesktopWidth / 2, @DesktopHeight / 3, @DesktopWidth * 4 / 5, @DesktopHeight / 2, 0, 1.0, 1, $intX, $intY);查找区域内的黑色,黑色的颜色值为 0 ,这行代码有误!求更正!
;MouseMove($intX,$intY, 0)
MsgBox(0, 0, "x坐标:" & $intX & " y坐标:" & $intY)
$var = $DM.FindColor(@DesktopWidth / 2, @DesktopHeight / 3, @DesktopWidth * 4 / 5, @DesktopHeight / 2, 0, 0.1, 1, $intX, $intY);查找区域内的黑色,黑色的颜色值为 0 ,这行代码有误!求更正!
函数简介: 查找指定区域内的颜色,颜色格式"RRGGBB-DRDGDB",注意,和按键的颜色格式相反
函数原型:
long FindColor(x1, y1, x2, y2, color, sim, dir,intX,intY)
参数定义:
x1:区域的左上X坐标
y1:区域的左上Y坐标
x2:区域的右下X坐标
y2:区域的右下Y坐标
color:颜色 格式为"RRGGBB-DRDGDB",比如"123456-000000|aabbcc-202020"
sim:相似度,取值范围0.1-1.0
dir:查找方向 0: 从左到右,从上到下
1: 从左到右,从下到上
2: 从右到左,从上到下
3: 从右到左,从下到上
4:从中心往外查找
5: 从上到下,从左到右
6: 从上到下,从右到左
7: 从下到上,从左到右
8: 从下到上,从右到左
intX:返回X坐标
intY:返回Y坐标
返回值:
0:没找到
1:找到
示例:
dm_ret = dm.FindColor(0,0,2000,2000,"123456-000000|aabbcc-030303|ddeeff-202020",1.0,0,intX,intY)
If intX >= 0 and intY >= 0 Then
MessageBox "找到"
End If
|