TC官方合作论坛

 找回密码
 立即注册
查看: 1186|回复: 15
打印 上一主题 下一主题

[已解决] 多线程操作多窗口问题!急!!!

[复制链接]
跳转到指定楼层
楼主
发表于 2012-10-14 13:36:22 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
别让我看官方教程..我看了五遍了.到现在都不懂..!!!!!!!!!!
运行提示数组越界..单步调试..指针跳来跳去..我都晕了

求好心人解答!!!!!!

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
回复

使用道具 举报

16#
发表于 2012-10-15 19:33:07 | 只看该作者
回复 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
回复 支持 反对

使用道具 举报

15#
 楼主| 发表于 2012-10-14 16:58:02 | 只看该作者
哈哈.我终于自己搞好了...哎.太痛苦了
回复 支持 反对

使用道具 举报

14#
发表于 2012-10-14 16:38:02 | 只看该作者
window.postkeypress(windows,13)

这要写窗口句柄吧~
回复 支持 反对

使用道具 举报

13#
发表于 2012-10-14 15:02:59 | 只看该作者
群共享里有个TC中英文转换
回复 支持 反对

使用道具 举报

12#
 楼主| 发表于 2012-10-14 14:59:46 | 只看该作者
回复 11楼shine宝宝的帖子

好吧.首先要感谢你一直回答我的问题.但是很遗憾的告诉你.神奇的事情发生了
我输入<这是测试文本内容>的时候.喊话出来了<这这是是测测试试文文本本内内容>

而且只操作了一个窗口.....
回复 支持 反对

使用道具 举报

11#
发表于 2012-10-14 14:34:54 | 只看该作者
while (add<number)                                              //窗口叠加数不可以超过窗口数量
            thread.beginthread("TEST.messagebox",rstr[add])           //**************多线程开启*************
           如果(add==number-1)
                跳出
           如果结束
            add = add +1                                                               //叠加执行下一个数组里的窗口
     endwhile
回复 支持 反对

使用道具 举报

10#
发表于 2012-10-14 14:21:26 | 只看该作者
如果你真的想让别人帮你的话,这些代码翻译成中文应该没有问题吧,你又不是外国人,何必呢!
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2012-10-14 14:02:39 | 只看该作者
回复 8楼shine宝宝的帖子

  大神帮我改一下代码吧.照你说的做了..直接卡死在那了
回复 支持 反对

使用道具 举报

8#
发表于 2012-10-14 13:58:02 | 只看该作者
在循环加个如果 适当时候跳出 就不要add++了
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-10-10 04:19 , Processed in 0.161272 second(s), 25 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表