按键精灵
取窗口句柄
Global DDO, WX1, WX2, WY1, WY2, X, Y, Mouse1, Mouse2, Mouse3, ZhuXian, Speed, i, j, m, n, p |
DDO = Plugin.Window.Foreground() //得到当前窗口(DDO)的句柄 |
sRect = Plugin.Window.GetClientRect(DDO) //得到DDO窗口客户区的大小 |
MyArray = Split(sRect, "|") //分割窗口大小的字符串 |
WX1 = Clng(MyArray(0)): WY1 = Clng(MyArray(1)) //将分割的字符串分别赋值给变量 |
WX2 = Clng(MyArray(2)) : WY2 = Clng(MyArray(3)) |
X = WX2 / 2 + WX1 //得到DDO窗口客户区横向中心点坐标 |
Y = WY2 / 2 + WY1//得到DDO窗口客户区纵向中心点坐标 |
MessageBox "x1["& WX1 &"]y1["& WY1 &"]| x2["& WX2 &"]y2["& WY2 &"]" |
画准星
Declare Function 取设备句柄 Lib "user32" Alias "GetWindowDC" (ByVal hwnd As Long) As Long |
Declare Function 创建画笔对象 Lib "gdi32" Alias "CreatePen" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long |
Declare Function 选入场景 Lib "gdi32.dll" Alias "SelectObject" (ByVal hwnd As Long,ByVal hwnd As Long) As Long |
Declare Function 指定画笔位置 Lib "gdi32" Alias "MoveToEx" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal x As Long) As Long |
Declare Function 画直线 Lib "gdi32" Alias "LineTo" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long |
Declare Function 删除对象 Lib "gdi32" Alias "DeleteObject" (ByVal hObject As Long) As Long |
//取设备句柄(窗口句柄)[返回设备句柄,整数型] |
//创建画笔对象(类型,宽度,颜色)[返回对象句柄] |
//选人场景(设备句柄,场景句柄) |
//指定画笔位置(设备句柄,X,Y,坐标结购) |
//画直线(设备句柄,终点X,终点Y) |
//删除对象(对象句柄) |
宽度 = Plugin.Sys.GetScRX()//此例程为在桌面屏幕画准心,所以取的是屏幕分辩率 |
高度 = Plugin.Sys.GetScRY() |
设备句柄 = 取设备句柄(0)//窗口句柄为0时,取屏幕设备句柄,如在指定窗口画就填写窗口句柄 |
对象句柄 = 创建画笔对象(1, 2, 255)//参数1为类型,参数2为线条粗细,参数3为10进制的颜色值(255是红色) |
TracePrint 选入场景(设备句柄, 对象句柄)//此操作相当于windows画图时鼠标选择了画笔按钮。 |
TracePrint 指定画笔位置(设备句柄,宽度\2-50,高度\2,0)//坐标结构不要使用,按键不支持此数据类型 |
TracePrint 画直线(设备句柄, 宽度 \ 2 + 50, 高度 \ 2)//画横线 |
TracePrint 指定画笔位置(设备句柄,宽度\2,高度\2-50,0)//坐标结构不要使用,按键不支持此数据类型 |
TracePrint 画直线(设备句柄, 宽度 \ 2, 高度 \ 2 + 50)//画竖线 |
TracePrint 删除对象(对象句柄)'画完以后记得释放对象,如果需要一直画就不要释放,循环重复以上4行 |