TC官方合作论坛

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

[问题] 关于双线程开启的疑问,欢迎来解答

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

马上加入TC

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

x
本人纠结这个问题纠结了很长时间 就是不能达到想要的目的 直接上代码 麻烦大神给解决下,非常感谢

#import "dm.dmsoft" dm
空间 种植一
int intX6,intY6,x,y
功能 逻辑型 种植一()
    int hwnd= dm.GetMousePointWindow()
dm.SetWindowState(hwnd,12)
dm.SetPath(辅助.获取资源路径("rc:"))
dm.BindWindow(hwnd,"dx","dx","dx",0)
循环(真)   //打怪的代码
  int zd=dm.FindPic(0,0,2000,2000,"258.bmp","000000",0.9,0,x,y)
help.sleep(500)
dm.MoveTo(x+2,y+2)
// help.sleep(1000)
dm.LeftClick()
help.sleep(3000)
dm.MoveTo(转换.字符型转整型(编辑框.获得文本("编辑框30") ,0),转换.字符型转整型(编辑框.获得文本("编辑框31") ,0))
//help.sleep(1000)
dm.LeftClick()
help.sleep(500)
zd=dm.FindPic(0,0,2000,2000,"1.bmp","102030",0.9,0,x,y)//种植早产植物
help.sleep(500)
    dm.MoveTo(x+10,y+8)
//    help.sleep(1000)
    dm.LeftClick()
    help.sleep(900)
    zd=dm.FindPic(0,0,2000,2000,"8.bmp|7.bmp|6.bmp|5.bmp|4.bmp|2.bmp|小麦.bmp","102030",0.9,0,x,y)
//  help.sleep(1000)
//help.sleep(350000)
repeat(350)
help.sleep(1000)
endrepeat
   zd=dm.FindPic(0,0,2000,2000,"258.bmp","102030",0.9,0,x,y)
help.sleep(500)
    dm.MoveTo(x+10,y+8)
    help.sleep(500)
    dm.LeftClick()
    help.sleep(3000)
dm.MoveTo(转换.字符型转整型(编辑框.获得文本("编辑框32") ,0),转换.字符型转整型(编辑框.获得文本("编辑框33") ,0))
//help.sleep(1000)
dm.LeftClick()
help.sleep(6500)
zd=dm.FindPic(0,0,2000,2000,"16.bmp","102030",0.9,0,x,y)
dm.MoveTo(x+1,y+1)
help.sleep(600)
dm.LeftClick()
help.sleep(1000)
dm.MoveTo(转换.字符型转整型(编辑框.获得文本("编辑框34") ,0),转换.字符型转整型(编辑框.获得文本("编辑框35") ,0))
//help.sleep(1000)
dm.LeftClick()
help.sleep(6500)

zd=dm.FindPic(0,0,2000,2000,"16.bmp","102030",0.9,0,x,y)
dm.MoveTo(x+1,y+1)
help.sleep(600)
dm.LeftClick()
help.sleep(1000)
dm.MoveTo(转换.字符型转整型(编辑框.获得文本("编辑框36") ,0),转换.字符型转整型(编辑框.获得文本("编辑框37") ,0))
//help.sleep(1000)
dm.LeftClick()
help.sleep(6500)
zd=dm.FindPic(0,0,2000,2000,"16.bmp","102030",0.9,0,x,y)
dm.MoveTo(x+1,y+1)
help.sleep(600)
dm.LeftClick()
help.sleep(1000)
dm.MoveTo(转换.字符型转整型(编辑框.获得文本("编辑框38") ,0),转换.字符型转整型(编辑框.获得文本("编辑框39") ,0))
//help.sleep(1000)
dm.LeftClick()
help.sleep(6500)
zd=dm.FindPic(0,0,2000,2000,"16.bmp","102030",0.9,0,x,y)
dm.MoveTo(x+1,y+1)
help.sleep(600)
dm.LeftClick()
help.sleep(10)
zd=dm.FindPic(0,0,2000,2000,"8.bmp|7.bmp|6.bmp|5.bmp|4.bmp|2.bmp|小麦.bmp","102030",0.9,1,x,y)
          dm.MoveTo(x+2,y+1)
        dm.LeftClick()
        help.sleep(1000)        
循环结束
    返回 真
功能结束  
功能 逻辑型 验证()
    dm.SetPath(辅助.获取资源路径("rc:"))
字符型 IP端口=编辑框.获得文本("编辑框40")//验证的代码
循环(真)
            dm.FindPic(0,0,2000,2000,"waigua.bmp","000000",0.9,0,intX6,intY6)
             辅助.等待(2000)
if(intX6>=0)
                 辅助.蜂鸣(1000,3000)
              整型   截图句柄 = dm.FaqCapture(intX6-30,intY6,intX6+170,intY6+290,50,0,0)
              如果(dm.FaqPost(IP端口,截图句柄,1,60 * 1000)==1)
              循环(真)
              字符型  返回的结果 = dm.FaqFetch()
              如果(字符串.长度(返回的结果)>0)
                  如果(返回的结果=="OK:1")
                       dm.MoveTo(intX6-2,intY6+174)
                       辅助.等待(100)
                       dm.LeftClick()
                       辅助.等待(100)
                       dm.MoveTo(intX6+135,intY6+272)
                       辅助.等待(100)
                       dm.LeftClick()
                       跳出
                  如果结束                  
                  如果(返回的结果=="OK:2")
                      dm.MoveTo(intX6-2,intY6+199)
                      辅助.等待(100)
                      dm.LeftClick()
                      辅助.等待(100)
                       dm.MoveTo(intX6+135,intY6+272)
                       辅助.等待(100)
                       dm.LeftClick()
                       跳出
                  如果结束                  
                  如果(返回的结果=="OK:3")
                       dm.MoveTo(intX6-2,intY6+224)
                       辅助.等待(100)
                       dm.LeftClick()
                       辅助.等待(100)
                       dm.MoveTo(intX6+135,intY6+272)
                       辅助.等待(100)
                       dm.LeftClick()
                         跳出
                  如果结束                  
                  如果(返回的结果=="OK:4")
                        dm.MoveTo(intX6-2,intY6+249)
                        辅助.等待(100)
                        dm.LeftClick()
                        辅助.等待(100)
                        dm.MoveTo(intX6+135,intY6+272)
                        辅助.等待(100)
                        dm.LeftClick()
                        跳出
                  如果结束
              如果结束
              循环结束
              如果结束   
endif            
循环结束
返回 真
功能结束
空间结束

主线程这边是这么写的
功能 逻辑型 热键6_热键()
//这里添加你要执行的代码
线程句柄=线程.扩展开启("种植一.种植一","","蜜蜂天龙种植.大漠","")
help.sleep(500)
线程句柄1=线程.扩展开启("种植一.验证","","蜜蜂天龙种植.大漠","")
返回 真
功能结束
功能 逻辑型 热键7_热键()
//这里添加你要执行的代码
线程.关闭(线程句柄)
help.sleep(500)
线程.关闭(线程句柄1)
返回 真
功能结束

为什么就不能做到截图验证码  发送呢  种植没有什么问题
回复

使用道具 举报

7#
 楼主| 发表于 2012-7-21 06:46:01 | 只看该作者
都可以的  只是有张图复制错误了 郁闷了 现在好了 谢谢大家了
回复 支持 反对

使用道具 举报

6#
发表于 2012-7-15 16:20:05 | 只看该作者
先单独测试是否能判断识别到验证码出现吧.
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2012-7-15 05:08:22 | 只看该作者
#import "dm.dmsoft" dm
#import "dm.dmsoft" dm1
空间 种植一
int intX6,intY6,x,y
功能 逻辑型 种植一()
    int hwnd= dm.GetMousePointWindow()
dm.SetWindowState(hwnd,12)
dm.SetPath(辅助.获取资源路径("rc:"))
dm.BindWindow(hwnd,"dx","dx","dx",0)
循环(真)   //打怪的代码
  int zd=dm.FindPic(0,0,2000,2000,"258.bmp","000000",0.9,0,x,y)
help.sleep(500)
dm.MoveTo(x+2,y+2)
// help.sleep(1000)
dm.LeftClick()
help.sleep(3000)
dm.MoveTo(转换.字符型转整型(编辑框.获得文本("编辑框30") ,0),转换.字符型转整型(编辑框.获得文本("编辑框31") ,0))
//help.sleep(1000)
dm.LeftClick()
help.sleep(500)
zd=dm.FindPic(0,0,2000,2000,"1.bmp","102030",0.9,0,x,y)//种植早产植物
help.sleep(500)
    dm.MoveTo(x+10,y+8)
//    help.sleep(1000)
    dm.LeftClick()
    help.sleep(900)
    zd=dm.FindPic(0,0,2000,2000,"8.bmp|7.bmp|6.bmp|5.bmp|4.bmp|2.bmp|小麦.bmp","102030",0.9,0,x,y)
//  help.sleep(1000)
//help.sleep(350000)
repeat(350)
help.sleep(1000)
endrepeat
   zd=dm.FindPic(0,0,2000,2000,"258.bmp","102030",0.9,0,x,y)
help.sleep(500)
    dm.MoveTo(x+10,y+8)
    help.sleep(500)
    dm.LeftClick()
    help.sleep(3000)
dm.MoveTo(转换.字符型转整型(编辑框.获得文本("编辑框32") ,0),转换.字符型转整型(编辑框.获得文本("编辑框33") ,0))
//help.sleep(1000)
dm.LeftClick()
help.sleep(6500)
zd=dm.FindPic(0,0,2000,2000,"16.bmp","102030",0.9,0,x,y)
dm.MoveTo(x+1,y+1)
help.sleep(600)
dm.LeftClick()
help.sleep(1000)
dm.MoveTo(转换.字符型转整型(编辑框.获得文本("编辑框34") ,0),转换.字符型转整型(编辑框.获得文本("编辑框35") ,0))
//help.sleep(1000)
dm.LeftClick()
help.sleep(6500)

zd=dm.FindPic(0,0,2000,2000,"16.bmp","102030",0.9,0,x,y)
dm.MoveTo(x+1,y+1)
help.sleep(600)
dm.LeftClick()
help.sleep(1000)
dm.MoveTo(转换.字符型转整型(编辑框.获得文本("编辑框36") ,0),转换.字符型转整型(编辑框.获得文本("编辑框37") ,0))
//help.sleep(1000)
dm.LeftClick()
help.sleep(6500)
zd=dm.FindPic(0,0,2000,2000,"16.bmp","102030",0.9,0,x,y)
dm.MoveTo(x+1,y+1)
help.sleep(600)
dm.LeftClick()
help.sleep(1000)
dm.MoveTo(转换.字符型转整型(编辑框.获得文本("编辑框38") ,0),转换.字符型转整型(编辑框.获得文本("编辑框39") ,0))
//help.sleep(1000)
dm.LeftClick()
help.sleep(6500)

zd=dm.FindPic(0,0,2000,2000,"16.bmp","102030",0.9,0,x,y)
dm.MoveTo(x+1,y+1)
help.sleep(600)
dm.LeftClick()
help.sleep(10)
           
zd=dm.FindPic(0,0,2000,2000,"8.bmp|7.bmp|6.bmp|5.bmp|4.bmp|2.bmp|小麦.bmp","102030",0.9,1,x,y)
          dm.MoveTo(x+2,y+1)
        dm.LeftClick()
         
循环结束
    返回 真
功能结束  
功能 逻辑型 验证()
int hwnd= dm1.GetMousePointWindow()
dm1.SetWindowState(hwnd,12)
dm1.SetPath(辅助.获取资源路径("rc:"))
dm1.BindWindow(hwnd,"dx","dx","dx",0)
    字符型 IP端口=编辑框.获得文本("编辑框40")//验证的代码
    循环(真)
            dm1.FindPic(0,0,2000,2000,"waigua.bmp","000000",0.9,0,intX6,intY6)
             辅助.等待(2000)
if(intX6>=0)
                 辅助.蜂鸣(1000,3000)
              整型   截图句柄 = dm.FaqCapture(intX6-30,intY6,intX6+170,intY6+290,50,0,0)
              如果(dm1.FaqPost(IP端口,截图句柄,1,60 * 1000)==1)
              循环(真)
              字符型  返回的结果 = dm.FaqFetch()
              如果(字符串.长度(返回的结果)>0)
                  如果(返回的结果=="OK:1")
                       dm1.MoveTo(intX6-2,intY6+174)
                       辅助.等待(100)
                       dm1.LeftClick()
                       辅助.等待(100)
                       dm1.MoveTo(intX6+135,intY6+272)
                       辅助.等待(100)
                       dm1.LeftClick()
                       跳出
                  如果结束                  
                  如果(返回的结果=="OK:2")
                      dm1.MoveTo(intX6-2,intY6+199)
                      辅助.等待(100)
                      dm1.LeftClick()
                      辅助.等待(100)
                       dm1.MoveTo(intX6+135,intY6+272)
                       辅助.等待(100)
                       dm1.LeftClick()
                       跳出
                  如果结束                  
                  如果(返回的结果=="OK:3")
                       dm1.MoveTo(intX6-2,intY6+224)
                       辅助.等待(100)
                       dm1.LeftClick()
                       辅助.等待(100)
                       dm1.MoveTo(intX6+135,intY6+272)
                       辅助.等待(100)
                       dm1.LeftClick()
                         跳出
                  如果结束                  
                  如果(返回的结果=="OK:4")
                        dm1.MoveTo(intX6-2,intY6+249)
                        辅助.等待(100)
                        dm1.LeftClick()
                        辅助.等待(100)
                        dm1.MoveTo(intX6+135,intY6+272)
                        辅助.等待(100)
                        dm1.LeftClick()
                        跳出
                  如果结束
              如果结束
              循环结束
              如果结束   
endif   
    返回 真
    循环结束
功能结束

空间结束

功能 逻辑型 热键6_热键()
//这里添加你要执行的代码
线程句柄=线程.扩展开启("种植一.种植一","","蜜蜂天龙种植.大漠","")
help.sleep(500)
线程句柄1=线程.扩展开启("种植一.验证","","蜜蜂天龙种植.大漠","")
返回 真
功能结束


出现了验证码还是不穿出来
回复 支持 反对

使用道具 举报

地板
发表于 2012-7-15 01:14:55 | 只看该作者
差不多
每个线程里面,只要用到大漠,就必须绑定,同时解绑也必须在同一线程内
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2012-7-15 01:13:05 | 只看该作者
恩  我在测试下  意思就是两个线程绑定两次窗口  在解绑两次是这个意思吗?
回复 支持 反对

使用道具 举报

沙发
发表于 2012-7-14 21:45:09 | 只看该作者
每个线程都要独立的绑定大漠

你验证线程没绑定,估计导致了后面的找图各种功能失效.
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

关闭

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

GMT+8, 2025-9-18 15:35 , Processed in 0.168528 second(s), 25 queries .

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

© 2001-2013 Comsenz Inc.

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