TC官方合作论坛
标题:
多线程操作多窗口问题!急!!!
[打印本页]
作者:
cainiao007
时间:
2012-10-14 13:36
标题:
多线程操作多窗口问题!急!!!
别让我看官方教程..我看了五遍了.到现在都不懂..!!!!!!!!!!
运行提示数组越界..单步调试..指针跳来跳去..我都晕了
求好心人解答!!!!!!
namespace TEST
string[] rstr //窗口数组
int number,add //number 窗口数量..ADD窗口数量叠加
function bool messagebox() //自动喊话
string message = edit.gettext("edit0") //获得编辑框中的文本内容
int windows = convert.strtoint(rstr[add])
window.postkeypress(windows,13) //回车
help.sleep(100)
window.poststring(windows,message) //发送内容
help.sleep(100)
window.postkeypress(windows,13)
help.sleep(50)
return true
endfunction
function bool FindWindow() //找窗口
string windowclass = system.enum("WSGAME",1) //枚举窗口类名
if(windowclass !="") //窗口类名不等于空则执行分割等操作
str.split(windowclass,"|",rstr)
array.size(rstr,number)
while (add<number) //窗口叠加数不可以超过窗口数量
thread.beginthread("TEST.messagebox",rstr[add]) //**************多线程开启*************
add = add +1 //叠加执行下一个数组里的窗口
endwhile
endif
return true
endfunction
function bool start_click()
TEST.FindWindow()
return true
endfunction
作者:
爱玩的一休
时间:
2012-10-14 13:39
add没有初始化
rstr也没有初始化
加上
add=0
rstr=string[1]
作者:
cainiao007
时间:
2012-10-14 13:45
回复
2楼
爱玩的一休
的帖子
整形需要初始化?默认不是0
rstr 调试的时候获取到了窗口的句柄.所以也没问题
作者:
stxuhong
时间:
2012-10-14 13:50
如果不懂的话,最好从中文编程开始,这是最好的学习方法, 自己学习东西要找到那个才容易学
作者:
shine宝宝
时间:
2012-10-14 13:51
我是这么理解的。。比如数组大小获得的是2 那数组只有[0]和[1] 所以你再 add = add +1 就有了下标[2] 就越界啦
作者:
cainiao007
时间:
2012-10-14 13:54
回复
4楼
stxuhong
的帖子
呵呵..我看到中文代码就头大..看英文顺眼一点..我巴不得官方做一些英文的出来
我每次都还要翻译成英文
作者:
cainiao007
时间:
2012-10-14 13:56
回复
5楼
shine宝宝
的帖子
这我知道.但是我不知道怎么解决这个问题
喊话部份一句也没有执行.就算越界了..也起码要先运行成功一次吧
作者:
shine宝宝
时间:
2012-10-14 13:58
在循环加个如果 适当时候跳出 就不要add++了
作者:
cainiao007
时间:
2012-10-14 14:02
回复
8楼
shine宝宝
的帖子
大神帮我改一下代码吧.照你说的做了..直接卡死在那了
作者:
116911607
时间:
2012-10-14 14:21
如果你真的想让别人帮你的话,这些代码翻译成中文应该没有问题吧,你又不是外国人,何必呢!
作者:
shine宝宝
时间:
2012-10-14 14:34
while (add<number) //窗口叠加数不可以超过窗口数量
thread.beginthread("TEST.messagebox",rstr[add]) //**************多线程开启*************
如果(add==number-1)
跳出
如果结束
add = add +1 //叠加执行下一个数组里的窗口
endwhile
作者:
cainiao007
时间:
2012-10-14 14:59
回复
11楼
shine宝宝
的帖子
好吧.首先要感谢你一直回答我的问题.但是很遗憾的告诉你.神奇的事情发生了
我输入<这是测试文本内容>的时候.喊话出来了<这这是是测测试试文文本本内内容>
而且只操作了一个窗口.....
作者:
feng123144
时间:
2012-10-14 15:02
群共享里有个TC中英文转换
作者:
shine宝宝
时间:
2012-10-14 16:38
window.postkeypress(windows,13)
这要写窗口句柄吧~
作者:
cainiao007
时间:
2012-10-14 16:58
哈哈.我终于自己搞好了...哎.太痛苦了
作者:
爱玩的一休
时间:
2012-10-15 19:33
回复
3楼
cainiao007
的帖子
这是3.039版字符串分割里的例子
string[] rstr=string[1] //需要先初始化一次
string sourcestr="AB:CD:EF:GH:JK",splitstr=":"
bool isok=str.split(sourcestr,splitstr,rstr)
我刚才测试了一下,的确可以不用初始化。
对于你数组越界的问题,你按照下面这个代码修改试试。
function bool messagebox(string handle) //自动喊话
string message = edit.gettext("edit0") //获得编辑框中的文本内容
int windows = convert.strtoint(handle)
window.postkeypress(windows,13) //回车
help.sleep(100)
window.poststring(windows,message) //发送内容
help.sleep(100)
window.postkeypress(windows,13)
help.sleep(50)
return true
endfunction
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1