函数说明:1.TransformWindow(窗口句柄)功能:转换窗口,对要取后台图色数据的窗口使用该函数后才能取后台图色数据。
如果是DX图形绘图的窗口,DX绘图区域必须有部分移到屏幕外,否则无法使用。
转换窗口后,有些窗口(特别是大多数游戏的)要等待一会儿才能用其它函数可靠地取到后台图色数据,等待的时间要大于画面两次刷新的时间间隔。
转换后到取消转换前,可以无限次使用取到后台图色数据的命令,即通常只需要转换一次。
参数:1)窗口句柄:整型数。
2.UnTransformWindow(窗口句柄)功能:取消窗口转换,DX图形绘图的窗口,用过TransformWindow后,必须用UnTransformWindow取消窗口转换才能让DX绘图完全移到屏幕中,否则后很严重(不会损坏电脑的),自己试下就知道了。
参数:1)窗口句柄:整型数。
3.GetPixelColor(窗口句柄,横坐标,纵坐标)[颜色值]功能:获得指定点的颜色参数:1)窗口句柄:整型数。
2)横坐标:整型数,窗口客户区坐标。
3)纵坐标:整型数,窗口客户区坐标。
返回值:颜色值:整型数。
例子:Plugin hwnd=Window.Foreground()Plugin Window.Move(hwnd,-30,10)Plugin BGCP2_02.TransformWindow(hwnd)Delay 200Plugin color=BGCP2_02.GetPixelColor(hwnd,0,0)MsgBox CStr(Hex(color)),4096,"颜色"Plugin BGCP2_02.UnTransformWindow(hwnd)Plugin Window.Move(hwnd,10,10)4.CmpColor(窗口句柄,横坐标,纵坐标,颜色,颜色最大偏差)[是否满足条件]功能:判断指定点的颜色,后台的IfColor参数:1)窗口句柄:整型数。
2)横坐标:整型数,窗口客户区坐标。
3)纵坐标:整型数,窗口客户区坐标。
4)颜色:整型数。
5)颜色最大偏差:整型数。
游戏中不同电脑上显示的颜色会有点偏差,这个参数用于兼容这种情况,它设置的是RGB各颜色分量偏差的最大允许值,取值范围是0-255,0是无颜色偏差。
返回值:是否满足条件:布尔值,布尔值是用来表达是真是假的,指定点的颜色满足条件就返回真,否则返回假。
例子:Import "BGCP2_02.dll"Plugin hwnd=Window.Foreground()Plugin Window.Move(hwnd,-30,10)Plugin BGCP2_02.TransformWindow(hwnd)Delay 200Plugin tj=BGCP2_02.CmpColor(hwnd,6,5,&HFF7F00,30)If tj=trueMsgBox "满足条件",4096ElseMsgBox "不满足条件",4096EndIfPlugin BGCP2_02.UnTransformWindow(hwnd)Plugin Window.Move(hwnd,10,10)5.FindColor(窗口句柄,左边界,上边界,右边界,下边界,颜色,颜色最大偏差,查找方式,横坐标,纵坐标)功能:找色参数:1)窗口句柄:整型数。
2)左边界,整型数,用于设置找色范围,找色区域左上角的横坐标(窗口客户区坐标)。
3)上边界,整型数,用于设置找色范围,找色区域左上角的纵坐标(窗口客户区坐标)。
4)右边界,整型数,用于设置找色范围,找色区域右下角的横坐标(窗口客户区坐标)。
5)下边界,整型数,用于设置找色范围,找色区域右下角的纵坐标(窗口客户区坐标)。
7)颜色最大偏差:整型数。
游戏中不同电脑上显示的颜色会有点偏差,这个参数用于兼容这种情况,它设置的是RGB各颜色分量偏差的最大允许值,取值范围是0-255,0是无颜色偏差。
8)查找方式:整型数,用于设置找色时扫描的顺序。
可取如下值:0:从上到下,每行从左到右1:从上到下,每行从右到左2:从下到上,每行从左到右3:从下到上,每行从右到左4:从左到右,每列从上到下5:从左到右,每列从下到上6:从右到左,每列从上到下7:从右到左,每列从下到上8:从中间开始找色9)横坐标,整型数,用于***找到的颜色的横坐标(窗口客户区坐标),找不到时此值是-1。
10)纵坐标,整型数,用于***找到的颜色的纵坐标(窗口客户区坐标),找不到时此值是-1。
例子:Plugin hwnd=Window.Foreground()Plugin Window.Move(hwnd,-500,10)Plugin BGCP2_02.TransformWindow(hwnd)Delay 200Plugin BGCP2_02.FindColor(hwnd,0,0,800,600,&H59A508,20,0,x,y)MsgBox "坐标:"&CStr(x)&","&CStr(y),4096Plugin BGCP2_02.UnTransformWindow(hwnd)Plugin Window.Move(hwnd,10,10)6.LoadBMP(文件名组)[数据句柄数组]功能:载入BMP文件数据。
载入BMP图片文件的数据到内存,可以同时载入多个文件,要求图片格式是24位BMP文件,找图前使用该命令,在脚本中运行一次该命令即可。
参数:1)文件名组:字符串或数组,由于一次载入多个BMP文件,所以称为文件名组。
如果一次只载入一个BMP文件,此处参数填写该BMP文件路径即可。
如果一次载入多个BMP文件,可以使用两种形式:字符串形式:各文件路径用“|”号隔开,例如:图片1文件路径|图片2文件路径|图片3文件路径。
数组形式:支持用文件路径名构成的一维数组做参数。
返回值:数据句柄数组:成功时返回的是一个一维的整数数组,失败时返回的是个整数(错误代码)。
每个BMP文件载入内存后都将获得一个对应的数据句柄,这个句柄将作为找图命令的参数。
一次载入多个BMP文件,将同时获得多个数据句柄,数据句柄数组里存放的就是这些数据句柄。
数据句柄在数组中的排列顺序和文件名组中对应的图片的顺序相同。
7.FreeBMP(数据句柄数组)功能:卸载BMP文件数据。
释放用LoadBMP命令载入到内存中的图片数据。
参数:1)数据句柄数组:和LoadBMP命令中的意义相同,直接使用LoadBMP命令的返回值作为该参数即可,如果使用了N次LoadBMP命令,FreeBMP命令也必须使用N 次,LoadBMP和FreeBMP配对使用。
8.FindPicture(窗口句柄,左边界,上边界,右边界,下边界,数据句柄或图片文件路径,颜色最大偏差,相似度,横坐标,纵坐标)功能:范围找图,获得找到的第一个坐标。
用于找图的图片四角的颜色相同时,被该颜色被视为透明色,找图顺序和按键精灵相同。
参数:1)窗口句柄:整型数,每个窗口都有一个窗口句柄,不同窗口的窗口句柄不同,即使是同一个程序多开时,它们的窗口句柄也不相同,所以可以用窗口句柄来确定是哪个窗口。
当要进行全屏找图时,窗口句柄取0。
2)左边界,上边界,右边界,下边界:整型数,左边界和上边界分别是是待找图区域左上角的横坐标和纵坐标,右边界和下边界分别是是待找图区域右下角的横坐标和纵坐标,如果窗口句柄不为0,这里的坐标是窗口坐标,如果窗口句柄为0,这里的坐标是屏幕坐标。
3)数据句柄或图片文件路径:数据句柄在LoadBMP命令的数据句柄组里已经解释过了;图片文件路径,字符串,要求图片格式是24位BMP文件。
4)颜色最大偏差:整型数,指的是颜色的最大允许偏差,用于解决在不同电脑上的颜色偏差问题。
取值范围是0到255,取0时颜色不允许有偏差。
5)相似度:浮点数,表示不满足条件的点所允许占的比例。
取值为0到1之间的小数,1为最相似,相似度越高找图速度越快。
6)横坐标,纵坐标:整型数,此处用变量作为参数,用于***找到的图形的横坐标和纵坐标,未找到时横坐标和纵坐标都为-1。
例子1:Plugin HandleArray=BGCP2_02.LoadBMP("图A.bmp")//IsArray函数用于判断HandleArray是否是数组If IsArray(HandleArray)=FalseMsgBox "载入图片失败",4096EndScriptEndIfPlugin hwnd=Window.Foreground()Plugin Window.Move(hwnd,-500,10)Plugin BGCP2_02.TransformWindow(hwnd)Delay 200Plugin BGCP2_02.FindPicture(hwnd,0,0,800,600,HandleArray(0),30,0.9,x,y)MsgBox "坐标:"&CStr(x)&","&CStr(y),4096ElseMsgBox "未找到图形",4096EndIfEndScript//OnScriptExit过程在脚本结束时执行,即使脚本执行到一半的时候,你按了停止热键,它也会执行了这个过程再停止,这样能保证占用的资源被释放Sub OnScriptExitPlugin BGCP2_02.UnTransformWindow(hwnd)Plugin Window.Move(hwnd,10,10)//释放用LoadBMP命令载入到内存中的图片数据Plugin BGCP2_02.FreeBMP(HandleArray)Return例子2:Plugin hwnd=Window.Foreground()Plugin Window.Move(hwnd,-500,10)Plugin BGCP2_02.TransformWindow(hwnd)Delay 200Plugin BGCP2_02.FindPicture(hwnd,0,0,800,600,"图A.bmp",30,0.9,x,y)If x>=0 And y>=0MsgBox "坐标:"&CStr(x)&","&CStr(y),4096ElseMsgBox "未找到图形",4096EndIfEndScript//OnScriptExit过程在脚本结束时执行,即使脚本执行到一半的时候,你按了停止热键,它也会执行了这个过程再停止,这样能保证占用的资源被释放Sub OnScriptExitPlugin BGCP2_02.UnTransformWindow(hwnd)Plugin Window.Move(hwnd,10,10)Return9.FindPictureA(窗口句柄,左边界,上边界,右边界,下边界,数据句柄或图片文件路径,颜色最大偏差,相似度)[横坐标和纵坐标构成的二维数组]功能:范围找图,获得找到的所有坐标。