按键精灵大漠插件,绑定多个窗口的问题
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)// 绑定
还是不行 展开
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)// 绑定
还是不行 展开
1个回答
展开全部
第一,既然你开始已经用到Hwnd,后面数组就不能用Hwnd了,数组名和变量名不能一样。
第二,nowhwnd要定义环境变量,不是环境变量不能传人线程内。
第二,nowhwnd要定义环境变量,不是环境变量不能传人线程内。
追问
按你说的那我做的没错了,
DimEnv nowhwnd,这一句就把nowhwnd定义环境变量了,
我改过Hwnd名,但不管用,
错误还是跟之前一样,
就是nowhwnd = hwnd(i)这一句不行,类型不匹配: 'HWND',
我上网看过有人说数组后面的括号肉不能是变量,必须是固定的正整数
不知道是不是这样
追答
Dim hwnd(5),你这5个窗口句柄,前面没有代码赋值,所以是空值,还是没有窗口句柄,所以nowhwnd还是空值,因此绑定失败。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询