TC官方合作论坛

 找回密码
 立即注册
查看: 1717|回复: 2

[问题] 第一次写的挂机脚本,以为大功告成,还有疑难杂症,请高手.....

[复制链接]
发表于 2015-5-22 23:24:14 | 显示全部楼层 |阅读模式

马上加入TC

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

x
变量 窗口句柄=0
变量 确认期数=37
变量  确认承接句柄=0
变量 在线判断句柄=0
变量  找物句柄=0
变量  期数=0
变量  期数1=0
变量 wd =0
变量 登陆线程句柄=0
//开始按钮_点击操作
功能 开始_点击()
    登陆线程句柄=线程开启("登陆线程","")  

结束
// 自定义功能,用于操作浏览器控件线程

功能 登陆线程()
    网页跳转("浏览器0","登录网址")
    等待(500)
    变量 i=0
    循环(真)
        i=i+1
        // 判断网页页面是否加载完成,对网页元素操作,请确保网页加载完成!否则会出异常错误!
        如果(网页加载("浏览器0"))
            调试输出("加载完成")// 如果加载完成则退出循环
            跳出
        结束
        等待(50)
        如果(i>500)
            i=0
            网页跳转("浏览器0","登录网址")
            等待(500)
        结束
    结束  
    网页元素输入("浏览器0","用户名","id:username&type:text")
    等待(500)
    网页元素输入("浏览器0","密码","id:password1")
    等待(500)
    网页元素点击("浏览器0","tag:INPUT")
    等待(1500)
    循环(真)
        // 判断网页页面是否加载完成,对网页元素操作,请确保网页加载完成!否则会出异常错误!
        如果(网页加载("浏览器0"))
            调试输出("登陆成功")// 如果加载完成则退出循环
            跳出
        结束

    结束  
    等待(100)
    找物句柄=线程开启("找物线程","")
    线程关闭(登陆线程句柄,0)
结束
变量 s=0, s1=0, s2=0
功能 找物线程()
    s1=当前时间()
    网页跳转("浏览器0","登录网址")
    等待(1000)
    变量 a=0
    循环(真)
        a=a+1
        // 判断网页页面是否加载完成,对网页元素操作,请确保网页加载完成!否则会出异常错误!
        如果(网页加载("浏览器0"))
            调试输出("物权页加载完成")// 如果加载完成则退出循环
            跳出
        结束
        等待(50)
        如果(a>500)
            a=0
            网页清理临时目录()
            网页跳转("浏览器0","********网址")
            等待(500)
            调试输出 ("退出重新登陆")
            线程开启("登陆线程","")
            线程关闭(找物句柄,0)            
            等待(500)
        结束
    结束  
    等待(50)
    wd = 网页获取句柄("浏览器0")
    窗口句柄=窗口获取自我句柄()
    调试输出 ("窗口句柄="&窗口句柄)
    变量 x,y,x1,y1,x12,y12
    循环(真)

        期数=网页元素获取("浏览器0","text","tag:TD")
        期数1=转整型(期数)
        a=a+1
        如果(期数1>0)
            调试输出("取到期数")
            跳出

        结束
        等待(20)
        如果(a>500)
            a=0
            网页清理临时目录()//如果找不到说明浏览器卡死,重新登陆
            网页跳转("浏览器0","网址")
            等待(500)
            调试输出 ("退出重新登陆")
            线程开启("登陆线程","")
            线程关闭(找物句柄,0)

        结束
    结束     
    调试输出("期数1="&期数1)
    窗口获取位置(窗口句柄,x,y)
    调试输出("窗口X="&x)
    调试输出("窗口y="&y)

    如果(期数1<3)

        窗口找图(wd,180,260,1162,388,"D:/123/1.bmp","000000",1,0,x1,y1)//我要
        调试输出("绿标x="&x1)
        调试输出("绿标y="&y1)

        窗口找色(wd,180,260,1162,388,"5230F6-772340",1,0,x12,y12)//密标

        调试输出("密标x12="&x12)
        调试输出("密标y12="&y12)

        如果(y1>0&&y12>0)
            调试输出("找到没有密码的")
            窗口鼠标左键单击(wd,x1,y1)
            调试输出("单击完成")
            等待(100)
            变量 计数=0
            变量 规格=0
            变量 规格1=0
            循环(真)
                规格=网页元素获取("浏览器0","text","tag:TD")
                规格=字符串截取左侧(规格,2)
                规格1=转整型(规格)
                如果(规格1>9||计数>20)
                    跳出
                否则
                    等待(50)
                    计数=计数+1
                结束
            结束
            调试输出("规格="&规格1)
            期数=网页元素获取("浏览器0","text","tag:TD")
            期数=字符串移除(期数,1,假)
            确认期数=转整型(期数)
            调试输出("确认期数="&确认期数)
            变量 at=当前时间()
            变量 待收时间=网页元素获取("浏览器0","text","tag:TD")
                        调试输出(待收时间)
            如果(待收时间!="")
                变量 待收天数=时间间隔("d",at,待收时间)
                调试输出("待收天数="&待收天数)
                如果(待收天数<16&&确认期数<3||规格1>17&&确认期数<3)
                    网页元素输入("浏览器0","294607gs","name:paypass")
                    等待(50)
                    网页元素点击("浏览器0","tag:INPUT&value:确认承接")
                    调试输出("已经确认")
                否则
                    网页元素点击("浏览器0","tag:INPUT&value:取消")
                    调试输出("已经取消")
                结束
            结束
            确认期数=37

        结束
    结束

    线程关闭(找物句柄,0)
    在线判断句柄=线程开启("在线判断","")


结束

功能 在线判断()
    等待(50)
    变量 用户=网页元素获取("浏览器0","text","id:k._ME.un")
    调试输出("当前用户"&用户)
    变量 是否在线 = 字符串比较(用户,"eng") //在线为0
    如果(是否在线==0)
        找物句柄=线程开启("找物线程","")
    否则
        登陆线程句柄=线程开启("登陆线程","")
    结束
    s2=当前时间()
    s=时间间隔("s",s1,s2)
    调试输出("耗时="&s)
    线程关闭(在线判断句柄,0)

结束
功能 暂停按钮0_点击()
    线程暂停(找物句柄)//这里添加你要执行的代码

结束
功能 恢复按钮1_点击()
    线程恢复(找物句柄)//这里添加你要执行的代码

结束

//退出按钮_点击操作
功能 退出_点击()
    退出()
结束




回复

使用道具 举报

 楼主| 发表于 2015-5-22 23:27:38 | 显示全部楼层
具体情况是:监视某个网页,出现符合条件的物品。自动点击购买。脚本调试运行没有问题,长时间挂机运行就不行了,运行十几分钟至几十分钟后会出现错误,要么是停在某处不在循环,要么是重启了EXE。这时要点开始才能重新循环监视。脚本内容也不复杂,就是登陆线程--发现购买线程---判断是否在线状态线程(如果没有在线就启动登陆线,在线启动发现购买线程),主要是后两个不断循环直到按退出。线程中没有设置死循环,就是说有循环的地方加了计数器,到一定次数即使没有符合条件也会继续脚本。
回复 支持 反对

使用道具 举报

发表于 2015-5-23 00:15:39 | 显示全部楼层
,尽量再优化下,我以前也喷到,优化很多次还是,还是头脑不清楚,一定把每个函数的作用位置想好,要不一直调用,或者频繁调用本身也会
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-10-2 10:07 , Processed in 0.037569 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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