|
想调用DBSOFT.DLL的DLL文件。代码如下:
$hwnd = WinGetHandle("[CLASS:Notepad]")
$Dll_ = DllOpen("DBSoft.dll")
$result = DllCall($Dll_, "int", "GetColorXY", $hwnd, 1, 1 ,1024 ,768 , "FFFFFF", 0, 1)
msgbox(0, "", $result)
DBsoft.DLL的函数说明:
函数名称: GetColorXY
函数功能: 单点找色
函数说明: 可用于后台,返回第一个符合条件的点的坐标。对于DirectX窗口后台操作可能失败的情况,这时可以尝试用EnableDXSnap和UNEnableDXSnap函数处理看看,但不一定成功,因为不是所有的DirectX窗口都支持
函数返回: 结果为一维数组,失败均返回-1
命令参数:
1、窗口句柄或者图片路径
如果为窗口句柄,句柄要求为数字≥0,0表示当前屏幕,采用屏幕坐标系统,其余采用窗口坐标系统(窗口方式为后台方式)
如果为图片,要求为字符串,支持相对路径
2、识别范围左上角X(数字≥0)
3、识别范围左上角Y(数字≥0)
4、识别范围右下角X(数字≥0)
5、识别范围右下角Y(数字≥0)
6、识别颜色(字符串,如"000000",16进制颜色代码)
7、颜色偏差,可选参数,默认为0,此参数可以使用数字和字符串,例如0,"0","0,0,0"将代表同一个意思。
使用字符串,例如"10,20,30"来分别设置RGB偏差(只能设置3个偏差,顺序为R、G、B),那么RGB偏差分别为R=10,G=20,B=30,如果只输入一个,那么将默认为RGB偏差都为此数,例如"10",RGB偏差分别为R=10,G=10,B=10,如果大于1个,那么将分别设置RGB偏差,缺少的将默认为0,例如"10,10",RGB偏差分别为R=10,G=10,B=0,大于三个将取前三个。
RGB偏差有效范围为0-255
8、寻找顺序(0~4),可选参数,默认为0
0表示从中心找起
1表示从左上找起
2表示从右上找起
3表示从左下找起
4表示从右下找起
寻找顺序解释:寻找方式是以设定点(根据给定范围和寻找顺序计算)为方形渐开方式寻找
以上的DLL里这个函数的说明。为什么按我这么取出来的不是一个数组而是只有一个0呢? |
|