TC官方合作论坛

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

[问题] 我是单线程开启的为什么运行不了多久就出现未知错误

[复制链接]
跳转到指定楼层
楼主
发表于 2014-9-28 07:18:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

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

x
我是单线程开启的为什么运行不了多久(大概10多分钟)也就是跑个几圈,就出现未知错误这个只是一部分的代码~我功能都是这样连起来的~运行是没问题就是跑久了就不行


功能 热键1_热键()    线程句柄2=线程.开启("我的脚本.循环登陆","")功能结束功能 切换帐号()  
    dm_ret = dm.FindPic(683,94,783,165,"切换帐号.bmp","000000",0.9,0,intX,intY)
    如果(dm_ret>=0)
        鼠标.移动(intX+10,intY+28)
        辅助.等待(500)
        鼠标.左键单击(1)
        辅助.等待(500)
        调试输出("切换帐号中...")
        绑定窗口.循环登陆()
    如果结束

功能结束
功能 循环登陆()
    配置文件路径=系统.获取程序路径()&"Configs.ini"
    如果(单选框.获得状态("单选框0"))

        登陆帐号序号=辅助.读配置("RealmName","登陆帐号序号",配置文件路径)
        如果(登陆帐号序号!="")
            登陆序号=登陆帐号序号+1
            辅助.写配置("RealmName","登陆帐号序号",登陆序号,配置文件路径)
        否则
            登陆序号=0
            辅助.写配置("RealmName","登陆帐号序号",登陆序号,配置文件路径)

        如果结束


        帐号路径=浏览框.获得("浏览框0")
        如果(帐号路径!="")
            变量 内容,len
            内容= p公共库.读记事本返回内容数组(帐号路径)
            arraysp.size(内容,len)

            如果(登陆序号>=len)
                调试输出("帐号已经登陆完了")
            否则
                调试输出("内容:"&内容[登陆序号])
                变量 返回值 //需要先初始化一次

                是否成功=字符串.分割((内容[登陆序号]),"----",返回值)
                帐号=返回值[0]
                密码=返回值[1]
                绑定窗口.自动登陆()
            如果结束

        如果结束

    如果结束

功能结束

功能 读记事本返回内容数组(文本路径)

    变量 内容
    文本内容=文件.读文件(文本路径)
    是否成功=字符串.分割(文本内容,"\n",内容)
    如果(是否成功)
        返回 内容
    如果结束

功能结束

功能 自动登陆()
    辅助.等待(500)
    鼠标.移动(34,138)
    辅助.等待(500)
    鼠标.左键单击(1)
    辅助.等待(500)
    超级键盘.发送字符串(帐号,50)
    辅助.等待(500)
    鼠标.移动(34,178)
    辅助.等待(500)
    鼠标.左键单击(1)
    辅助.等待(500)
    超级键盘.发送字符串(密码,50)
    绑定窗口.判断是否验证()

功能结束

功能 判断是否验证()
    辅助.等待(500)
    循环(真)
        dm_ret = dm.FindPic(53,188,162,263,"安全验证.bmp","000000",0.9,0,intX,intY)

        如果(intX >= 0)
            绑定窗口.判断验证码是否出现()
            跳出
        否则
            dm_ret = dm.FindPic(685,5,784,69,"判断游戏界面1.bmp","000000",0.9,0,intX,intY)
            如果(intX >= 0)

                绑定窗口.判断游戏界面1()
                跳出
            如果结束
        如果结束
    循环结束

功能结束



功能 判断验证码是否出现()
    循环(真)
        dm_ret = dm.FindPic(24,26,114,134,"验证码判断.bmp","000000",0.9,0,intX,intY)
        如果(dm_ret>=0)
            辅助.等待(500)
            调试输出("网络延时,验证码未出现")
        否则
            调试输出("验证码已出现")
            绑定窗口.验证码功能()  
            跳出
        如果结束
    循环结束

功能结束



功能 验证码功能()
    //创建插件对象 com关键字必须是小写
    //wiki.dama2.com/index.php?n=ApiDoc.GetSoftIDandKEY没有适合您的请联系打码兔补充
    用户名 = "16564654"
    //仅供测试,开发者提供输入框给用户输入
    密码 = "888888"
    //仅供测试,开发者提供输入框给用户输入
    dm_ret = dm.Capture(7,56,143,115,"C:\\验证码.bmp")
    图片名 = "C:\\验证码.bmp"
    //D2File2(string szUserName,string szUserPassword,string szFileName,int usTimeout,int ulVCodeTypeID)
    Dama2.SoftwareID = "539ca8bf10aa0a94768e136365433fdgh"
    返回结果 = Dama2.D2File2(用户名, 密码, 图片名,30,23)

    //变量 返回值
    //是否成功 = 字符串.分割(返回结果,  ":", 返回值)
    var rstr

    isok = str.split(返回结果,",", rstr)
    辅助.等待(500)

    如果 (isok)
        验证码ID=rstr[0]
        答案=rstr[1]
        调试输出(答案)
        转小写=字符串.转小写(答案)
        辅助.等待(2000)
        //调试输出("成功!验证码ID:"&验证码ID&",答案:"&转小写)
        调试输出(转小写)
        绑定窗口.输入验证码()
        //dm.SendString2 (hwnd,答案)
        //dm.KeyPressStr ("答案",50)

        //如果答案不正确,请调用下面的报错函数,返还用户题分
    否则
        //辅助.消息框("失败:"&返回结果)
    如果结束


功能结束

功能 输入验证码()
    鼠标.移动(66,168)
    辅助.等待(800)
    鼠标.左键单击()
    辅助.等待(1000)
    超级键盘.发送字符串(转小写,50)
    辅助.等待(800)
    p公共库.找到图片左键单击(dm,359,174,441,215,"提交.bmp")
    辅助.等待(800)
    文件.删除("C:\\验证码.bmp")
    绑定窗口.判断验证是否成功()
功能结束

功能 判断验证是否成功()
    dm_ret = dm.FindPic(359,300,434,369,"确认.bmp","000000",0.9,0,intX,intY)
    如果(dm_ret>=0)
        辅助.等待(500)
        调试输出("验证失败重新验证")
        鼠标.移动(intX+10,intY+20)
        辅助.等待(500)
        鼠标.左键单击(1)
        辅助.等待(500)
        dm_ret = dm.FindPic(745,120,798,166,"叉叉.bmp","000000",0.9,0,intX,intY)
        鼠标.移动(intX+10,intY+20)
        辅助.等待(500)
        鼠标.左键单击(1)
        辅助.等待(500)
        绑定窗口.判断验证码是否出现()
    否则
        调试输出("验证码验证码正确开始游戏")
        辅助.等待(3000)
        绑定窗口.判断游戏界面1()

    如果结束

功能结束

功能 判断游戏界面1()

    循环(真)
        辅助.等待(1000)
        dm_ret = dm.FindPic(685,5,784,69,"判断游戏界面1.bmp","000000",0.9,0,intX,intY)
        如果(dm_ret>=0)
            辅助.等待(500)
            调试输出("判断游戏界面1,关闭弹窗")
            辅助.等待(500)
            键盘.按键(27,1)
        否则
            调试输出("判断游戏界面1")
            绑定窗口.判断游戏界面2()  
            跳出
        如果结束
    循环结束

功能结束

功能 判断游戏界面2()   
    辅助.等待(500)
    dm_ret = dm.FindPic(685,5,784,69,"判断游戏界面2.bmp","000000",0.9,0,intX,intY)
    如果(dm_ret>=0)
        辅助.等待(500)
        调试输出("正式进入游戏,开始赠送好友")
        绑定窗口.切换帐号
    否则
        调试输出("弹窗未关闭..返回判断游戏界面1")
        绑定窗口.判断游戏界面1()  
    如果结束

功能结束





回复

使用道具 举报

沙发
发表于 2014-9-28 16:18:59 | 只看该作者
没人愿意去看你这么长的代码  
一般未知错误 都是条件没有考虑周全
出现不可知情况
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

关闭

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

GMT+8, 2025-9-25 05:54 , Processed in 0.130040 second(s), 25 queries .

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

© 2001-2013 Comsenz Inc.

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