- 注册时间
- 2011-3-6
- 最后登录
- 1970-1-1
该用户从未签到
|
用了几天大漠了,由于说明不是说得那么明白,只好自己不断的琢磨和实验,有些心得,特别是针对一个脚本控制几个窗口的情况,列出来供大家参考,免得再走弯路
具体看脚本节选吧,会附一些解释在每句下:
Dim dm_all(5),dm_retB(5)
//由于我经常不会大于5开,有时6开,所以数组下标到5就够了;
PutAttachment "c:\大漠插件","*.*"
// 这里要用到RegDll来注册插件,所以必须释放到Plugin. 但是切记不能把dm.dll释放到Plugin.那会导致插件失效.
PutAttachment ".\Plugin" ,"RegDll.dll"
// 插件注册开始>>>>>>>>>>>>>>>>>>>
// 下面开始注册插件,先尝试用RegDll来注册
Call Plugin.RegDll.Reg("c:\大漠插件\dm.dll")
//这以上我省略了一段我获得游戏窗口个数plays和目标窗口句柄的代码,下面看到 objwin(i)是指我需要绑定大漠的游戏窗口
// 以下分别创建大漠对象
i=0
For i=0 to plays
Set dm_all(i) = createobject("dm.dmsoft")
Next
// 以下分别绑定窗口
i = 0
For plays
dm_retB(i) = dm_all(i).BindWindow(objwin(i), "dx", "dx", "dx", 0)
//后台屏幕模式:dx 后台鼠标模式:dx 后台键盘模式:dx 绑定模式:0
Delay 100
i=i+1
Next
Delay 3000
i=0
// 检测返回值
For plays
If dm_retB(i) = 0 Then
MessageBox "绑定失败"
EndScript
End If
i=i+1
Next
i = 0
//好了,以上发现,我没有像大漠说明里边一样进行窗口切换,直接用数组变量来传递数据,但是按键脚本是不认dmall(i).keypress 13 或dm_all(i).LeftClick这种语法的,那么思路换一下
//以下,我以子程序的方式列出了几个典型操作,哈哈,脚本速度快N倍了,我用子程序是为了当时测试方便,其实可以直接写句子。
//以下是每个游戏窗口输入一个回车
for i=0 to plays
MykeyCode = 13
Call 执行按键动作()
next
//以下是点击每个游戏窗口中的按钮
for i=0 to plays
my_x = 485 : my_y = 145
Call 执行大漠鼠标左击动作()
next
Sub 执行按键动作()
dm_ret=dm_all(i).KeyPress (MyKeyCode)
End Sub
Sub 执行大漠鼠标左击动作()
dm_ret=dm_all(i).MoveTo (my_x,my_y)
Delay 5
dm_ret=dm_all(i).LeftClick()
Delay 5
End Sub
Sub 执行大漠鼠标右击动作()
dm_ret=dm_all(i).MoveTo (my_x,my_y)
Delay 5
dm_ret=dm_all(i).rightClick()
Delay 5
End Sub
以上,我想对新手来说是非常适用的。 |
|