TC官方合作论坛

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

[已解决] 求助,关于后台多开出现死循环,如何解绑不出现异常

[复制链接]
跳转到指定楼层
楼主
发表于 2014-12-1 04:48:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

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

x
本帖最后由 wuyunlong516 于 2014-12-1 20:26 编辑

从新发帖重要部分的源码,整个源码可以通过编译,主要是打怪操作是个无限循环,当按下快捷退出键的时候出现异常关闭窗口,如果不是无限循环,快捷键结束可以通过,不会出现异常,跪求导师,大神,高手,同学们来帮解答一下,如果出现这个无限循环的情况,退出应该是怎么写呀?
空间 QQ空间
ts=
数组[0]
技能组合=
数组[0]

功能
主线程() ----------------------------------------获取窗口功能
----------------------------------------------
    变量 返回值,数组大小,i
    句柄数组=数组[1]
    返回值=系统.枚举("游戏窗口名",0)
    如果(返回值=="")
        辅助.消息框("没有找到游戏窗口")
        返回 假
    如果结束
    字符串.分割(返回值,"|",句柄数组)
    数组空间.大小(句柄数组,数组大小)
    遍历(i=0;i<数组大小;i++)
        ts=数组空间.重定义(ts,,i+1)
        参数=句柄数组&","&i
        线程.开启("QQ空间.子线程",参数,"QQ空间.解绑",i)
        辅助.等待(1000)
    遍历结束
功能结束



功能 子线程(参数)
--------------------------------------绑定每个窗口并执行功能----------------------------------------------
    i,窗口句柄,绑定返回值
    参数数组=数组[1]
    字符串.分割(参数,",",参数数组)
    窗口句柄=参数数组[0]
    i=参数数组[1]
    ts=com("ts.tssoft")

绑定返回值=ts.BindWindow(窗口句柄,"gdi2","dx","dx",0)

    辅助.等待(1000)
    如果(绑定返回值==0)
        help.messagebox("绑定失败")
        返回 假
    如果结束
    ts.SetPath(辅助.获取资源路径("rc:"))

   //下面进行操作
    QQ空间.打怪操作(i)
功能结束


功能 打怪操作(i)
----------------------------------重点在这里,无限循环打怪功能---------------------------------------------
    延时=辅助.随机数(100,1000)   //设置一个随机延时
    循环()           //无限循环开始
        ts.KeyPress(9)              //键盘按下TAB选怪

        辅助.等待(延时)      
        小怪血条=ts.GetColor(521,36)         //判断小怪是否满血,是就执行,否从新选怪

        如果(小怪血条=="961818")
            循环()                 //按技能操作
                ts.KeyPress(49)        //技能键1

                辅助.等待(延时)
                ts.KeyPress(50)       //技能键2

                辅助.等待(延时)
                是否死亡=ts.GetColor(411,36)        //判断小怪是否死亡,是就跳出,否继续按技能

                如果(是否死亡=="ae8308")
                    辅助.等待(延时)
                   跳出
                否则
                    继续
                如果结束       //判断小怪死亡结束
            循环结束       //循环按技能结束
        如果结束         //判断小怪满血结束
    循环结束          //无限循环,小怪杀完继续选,继续杀.
功能结束

功能 开始游戏_热键()
-------------------------------------开始热键----------------------------------------------
    线程.开启("QQ空间.主线程","")
功能结束

功能 结束游戏_热键()
-------------------------------------结束热键----------------------------------------------
    辅助.退出()   //如果在结束的时候,加入线程.关闭(线程句柄),和ts.UnBindWindow()不行的哈,还是要卡死
功能结束

功能 解绑(i)
---------------------------------如果没有无限循环,执行完所有功能自动进行解绑----------------------------------------------
ts.UnBindWindow()
  
功能结束

功能 初始化()
----------------------------------------------初始化注册插件----------------------------------------------
    辅助.注册插件("rc:\\TSPlug.dll",)  
功能结束

空间结束










回复

使用道具 举报

6#
发表于 2014-12-1 10:42:29 | 只看该作者
本帖最后由 yuduo1983 于 2014-12-1 10:55 编辑

写的单窗口,个人想法,看看行不行
功能 打怪操作()               
    //代码
功能结束

功能 主线程()
    打怪=单选框.获得状态("单选框2")  
    if(打怪)
        打怪操作()
    endif
功能结束

功能 解绑()
    ts.UnBindWindow()
功能结束

功能 开始游戏_热键()
    线程.开启("空间名.主线程","")       //用的是线程启动,              
功能结束

功能 结束游戏_热键()   
    空间名.解绑()   
    辅助.退出()
功能结束

回复 支持 反对

使用道具 举报

沙发
发表于 2014-12-1 08:52:56 | 只看该作者
线程句柄=线程.开启("空间名.主线程","")
//退出的时候先关闭线程...
线程.关闭("线程句柄")

希望能帮到你
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2014-12-1 09:08:58 来自手机 | 只看该作者
谢谢,试过不行
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2014-12-1 09:09:00 来自手机 | 只看该作者
谢谢,试过不行
回复 支持 反对

使用道具 举报

5#
发表于 2014-12-1 10:36:32 | 只看该作者


除了默默点个赞,我真的不知道说啥好了

回复 支持 反对

使用道具 举报

7#
发表于 2014-12-1 16:28:34 | 只看该作者
小白 飘过~~~
回复

使用道具 举报

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

本版积分规则

关闭

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

关闭

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

GMT+8, 2025-9-24 01:53 , Processed in 0.139215 second(s), 23 queries .

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

© 2001-2013 Comsenz Inc.

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