按键精灵大漠插件,绑定多个窗口的问题

dm.SetPath"c:\test_game"hwnd=dm.GetMousePointWindow()//获取句柄Setdm=createobject("dm.dms... dm.SetPath "c:\test_game"

hwnd = dm.GetMousePointWindow()// 获取句柄

Set dm = createobject("dm.dmsoft")//这句是线程功能,如果不用线程可以删除

dm_ret = dm.BindWindow(hwnd,"dx2","dx2","dx",0)// 绑定

TracePrint dm_ret
Dim hwnd(5) //数组里假设存放着6窗口句柄
DimEnv nowhwnd//多线程传递变量

For i = 0 To 5
nowhwnd = hwnd(i)
BeginThread main
Delay 3000
Next

Sub main
Set dm = createobject("dm.dmsoft")
thehwnd = nowhwnd
dm_ret = dm.BindWindow(thehwnd, "dx2","dx2","dx", 0)
//里写点击代码
Rem 重新查找鼠标
Delay 300
dm.MoveTo 400, 110
Delay 300
dm.LeftClick
Delay 180000
Goto 重新查找鼠标
End Sub

Sub OnScriptExit()
dm_ret = dm.UnBindWindow()
End Sub

调示后提示“绑定窗口时发现无效的窗口句柄

调试信息:类型不匹配: 'HWND',
我还把前面这一句删了dm_ret = dm.BindWindow(hwnd,"dx2","dx2","dx",0)// 绑定

还是不行
展开
 我来答
帐号已注销
2014-05-04 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6449
采纳率:69%
帮助的人:2149万
展开全部
第一,既然你开始已经用到Hwnd,后面数组就不能用Hwnd了,数组名和变量名不能一样。
第二,nowhwnd要定义环境变量,不是环境变量不能传人线程内。
追问
按你说的那我做的没错了,
DimEnv nowhwnd,这一句就把nowhwnd定义环境变量了,

我改过Hwnd名,但不管用,
错误还是跟之前一样,
就是nowhwnd = hwnd(i)这一句不行,类型不匹配: 'HWND',

我上网看过有人说数组后面的括号肉不能是变量,必须是固定的正整数
不知道是不是这样
追答
Dim hwnd(5),你这5个窗口句柄,前面没有代码赋值,所以是空值,还是没有窗口句柄,所以nowhwnd还是空值,因此绑定失败。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式