按键精灵提示下标越界.通过模糊查找出来的句柄的返回值,如何才能正确转换,近而对窗口进行操作
以上代码省略..............Sub执行下一个渲染()Rem标记2Rendering=Plugin.Window.Search("Rendering")dimM...
以上代码省略..............
Sub 执行下一个渲染()
Rem 标记2
Rendering = Plugin.Window.Search("Rendering")
dim M
M = Split(Rendering, "|")
z = M(0) //提示下标越界
R_ring = Plugin.Window.IsWindow(z)
If R_ring = 1 Then
Delay ys
Goto 标记2
Else
Goto 标记
End If
End Sub
为什么 加了 z = M(0) 才能运行正常,不然一直在标记2内循环,
另外Rendering的句柄会变,标题也会跟着一起变,唯一不变的只有前几个字是Rendering 展开
Sub 执行下一个渲染()
Rem 标记2
Rendering = Plugin.Window.Search("Rendering")
dim M
M = Split(Rendering, "|")
z = M(0) //提示下标越界
R_ring = Plugin.Window.IsWindow(z)
If R_ring = 1 Then
Delay ys
Goto 标记2
Else
Goto 标记
End If
End Sub
为什么 加了 z = M(0) 才能运行正常,不然一直在标记2内循环,
另外Rendering的句柄会变,标题也会跟着一起变,唯一不变的只有前几个字是Rendering 展开
展开全部
因为通过模糊查找到后返回的格式是"句柄|",最大可用下标是1而不是0.
M = Split(Rendering, "|")
分解开后得到的是M(0)和M(1),而M(1)返回的是空值。
如果没有找到,查找命令返回的也是空值,你只需要判断变量Rendering<>"",或者UBound(M)>=0就可以知道窗口是否找到。
M = Split(Rendering, "|")
分解开后得到的是M(0)和M(1),而M(1)返回的是空值。
如果没有找到,查找命令返回的也是空值,你只需要判断变量Rendering<>"",或者UBound(M)>=0就可以知道窗口是否找到。
更多追问追答
追问
谢谢,我还想问哈如果我控制Rendering窗口的移动等,应该怎么办?为什么模糊查找的返回句柄值,不能直接用啊!
Call Plugin.Window.Move(Rendering, 700, 85)//移动窗口 提示类型不匹配
追答
Rendering = Plugin.Window.Search("Rendering")
如果你是用的这句返回的变量值,那你没有看明白我上面说的。这个变量返回的是字符窜,肯定不能直接拿来用,你需要分解转换成整数型。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询