|
楼主 |
发表于 2015-11-26 13:48:04
来自手机
|
显示全部楼层
zdy77233647 发表于 2015-11-25 18:00
普通的枚举窗口不能用吗?
头回发现还有这么个功能!这个问题可以解决我当前的问题了!谢谢!
不过就是这个数组接收的问题仍然卡住!因为这个大兵插件有很多功能是需要返回数组的,比如遍历文件啊,查找窗口啊,文字识别啊,获取一些多项值的功能,就都需要在tc里接收数组的!别的插件应该也是一样的。如果返回的值不只是一项的话,就都会遇到这个数组接收的问题。
比如我写的获取窗口这个代码:
ck=插件("DBSoft.DBSoft_Window") //窗口相关插件
变量 组1=数组() //设置数组
组1=ck.GetHwnd("计算器",0,0,5) //大兵插件查找窗口功能
消息框(组1[0])
这个会使软件崩溃。
或者:
ck=插件("DBSoft.DBSoft_Window") //窗口相关插件
变量 组1 //设置变量
组1=ck.GetHwnd("计算器",0,0,5) //大兵插件查找窗口功能
消息框(组1)
这个同样会崩溃。
而在大兵插件说明里,这个命令会返回:
数组(0):69540
数组(1):397568
就是这种数组的返回值,只要是用tc的变量接收,就会使tc崩溃,单项的返回值就不会
这个命令大兵给的案例介绍是这样的:
hwnd=Plugin.DBSoft.GetHwnd("按键精灵",0,1)
//hwnd=Plugin.DBSoft.GetHwnd("按键精灵",0,1,0)
//hwnd=Plugin.DBSoft.GetHwnd("按键精灵",0,1,1)
If hwnd(0)>0
TracePrint "找到" & UBound(hwnd)+1 &"个符合条件的窗口"
i=0
For UBound(hwnd)+1
t=Plugin.DBSoft.GetWindowsInfo(hwnd(i),19)
TracePrint"句柄:"& hwnd(i) & " 启动时间:" & t
i=i+1
EndFor
Else
TracePrint 没有找到符合条件的窗口
EndIf
看样子是按键精灵可以用一个变量直接接收的。但是这个写法放在tc里就不成了,会使软件崩溃。
我怀疑是tc这个软件的数组功能不支持接收这种变量。 楼下说用遍历。 遍历至少能把返回值一项一项赋予到tc里才可以。现在是那个数组的返回值,肯本就传不回来的。 传一次崩溃一次。怎么遍历?
如果不是用数组,还有没有办法能接收呢?
提问这个问题,主要还是以学习研究为主,一个问题如果解决不了,肯定能用别的办法绕过去,但这个问题困扰了我一年多了,每次碰到需要这个插件的时候,都因为这个数组返回接收不了而中途放弃了。所以来问问看能不能解决掉。
|
|