TC官方合作论坛

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

[问题] 多个线程调用一个功能

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-17 22:51:33 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上加入TC

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

x
如题 功能内有变量多个线程同时调用不行啊,好像开第二个线程第一个线程内的功能就没反应了求指点啊
回复

使用道具 举报

板凳
 楼主| 发表于 2013-8-18 09:28:44 | 只看该作者
回复 2楼sugar987009的帖子

帮我看下,我发现开第二个游戏第一个游戏窗口被解绑了 怎么回事
功能 窗口(热键)//由热键0,热键1传入值
    线程数量
    句柄=窗口.鼠标所在窗口句柄()
    aa=数组空间.查找(窗口句柄,句柄)
    调试输出("窗口判定"&aa)
    如果(aa==-1)
        如果(热键==0)
            数组空间.增加(窗口句柄,句柄)

            辅助.等待(50)
            dm_ret=dm.BindWindow(句柄,"dx2","dx2","dx",0)
            辅助.等待(1000)
            数组空间.大小(线程句柄1,线程数量)
            选择(线程数量)
                条件 0:
                数组空间.增加(线程句柄1,线程.开启("逍遥多开.自动爬塔",句柄))
               
                条件 1:
                数组空间.增加(线程句柄1,线程.开启("逍遥多开.自动爬塔1",句柄))
               
            选择结束
            辅助.等待(100)
            数组空间.增加(线程句柄2,线程.开启("逍遥多开.操作2",句柄))
            
            数组空间.增加(线程状态,1)//用1来表示线程是运行的,0表示暂停
            列表框.增加文本("列表框0","运行(线程1:"&线程句柄1[0]&"--线程2:"&线程句柄2[0])            
            列表框.增加文本("列表框1","窗口句柄1:"&句柄)            
            调试输出(线程句柄1[0])
            
        如果结束
    否则//如果是旧窗口,根据所按热键做相应操作
        如果(热键==1)//关闭线程的操作
            线程.关闭(线程句柄1[aa])
            线程.关闭(线程句柄2[aa])
            列表框.增加文本("列表框0","线程关闭:"&线程句柄1[aa]&"--"&线程句柄2[aa])
            数组空间.删除指定项(窗口句柄,aa)//线程关闭后把相应的数组元素删除
            数组空间.删除指定项(线程句柄1,aa)
            数组空间.删除指定项(线程句柄2,aa)
            数组空间.删除指定项(线程状态,aa)
            窗口.设置标题(句柄,"停止")
            返回 真
        如果结束     
        如果(线程状态[aa]==1)
            线程.暂停(线程句柄1[aa])
            线程.暂停(线程句柄2[aa])
            线程状态[aa]=0
        否则
            线程.恢复(线程句柄1[aa])
            线程.恢复(线程句柄2[aa])
            线程状态[aa]=1
        如果结束   
    如果结束
功能结束
功能 自动爬塔()
    intX,intY,intX1,intY1,intX2,intY2,intX3,intY3,intX4,intY4
    循环(真)
标记1:
        dm_ret = dm.FindPic(333,4,665,192,"六道.bmp","000000",0.9,0,intX,intY)
        辅助.等待(500)
        如果(intX>=0)
            //辅助.消息框(intX&"和"&intY)
            循环(真)
                dm.FindStr(550,370,862,507,"开始挑战","ffffff-000000",1.0,intX1,intY1)
               
                如果(intX1>=0)
                    dm.MoveTo(intX1,intY1)
                    辅助.等待(100)
                    dm.LeftClick()
                    辅助.等待(8000)
                    dm_ret = dm.FindPic(333,4,665,192,"战斗.bmp","000000",0.9,0,intX2,intY2)
                    如果(intX2>=0)
                        
                        循环(真)
                            辅助.等待(1000)
                           
                            dm.FindStr(424,296,558,357,"确定","ffffff-000000",1.0,intX3,intY3)
                            如果(intX3>=0)
                                dm.MoveTo(intX2,intY2)
                                辅助.等待(100)
                                dm.LeftClick()
                                辅助.等待(100)
                                跳出
                                
                            如果结束
                        循环结束
                    否则
                        
                        跳转 标记1
                        
                    如果结束
                否则
                    跳转 标记1  
                如果结束
            循环结束
            
        否则
            辅助.等待(100)
            dm_ret = dm.FindPic(466,1,606,104,"六道入口.bmp","000000",0.9,0,intX4,intY4)
            dm.MoveTo(intX4,intY4)//移动鼠标+偏移,这里根据需要来修改
            辅助.等待(1000)
            dm.LeftClick()
            辅助.等待(100)
            继续
        如果结束
        
    循环结束
功能结束功能 自动爬塔1()
内容同上
功能结束
回复 支持 反对

使用道具 举报

沙发
发表于 2013-8-18 07:40:21 | 只看该作者
你的变量是否在循环中  或者遍历中  如果要线程执行不同的功能 切调用同的变量 可以用第3变量做为转换 这样不容易出错
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

关闭

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

GMT+8, 2025-10-2 23:00 , Processed in 0.302309 second(s), 25 queries .

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

© 2001-2013 Comsenz Inc.

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