TC官方合作论坛

标题: 一开多线程大漠就提示“坐标越界大于窗口高度”,分析的头都疼了也不知道怎么回事 [打印本页]

作者: 最爱念    时间: 2012-7-17 00:50
标题: 一开多线程大漠就提示“坐标越界大于窗口高度”,分析的头都疼了也不知道怎么回事
大体脚本如下,在这里是把检测线程的开启放在主线程1里面的,见红色部分(之前2个都放在开始按钮点击事件里面,结果一点就程序卡死,只好改成现在这样)。但是现在的情况就是检测线程启动30秒左右后就会弹出提示说“坐标越界y1大于窗口高度”,偏偏这个y1又是主线程2(功能跟主线程1差不多,只是加多了一些判断,分别在不同的情况下开启,不会同时开启)里面找图的坐标,可是实际上我开启的仅仅只是主线程1,跟主线程2都没任何关系的呀?这到底是怎么回事呢


功能 逻辑型 主线程1()
    窗口句柄=窗口.找到窗口("BS")
    窗口.设置位置(窗口句柄,0,0)   
    辅助.等待(50)
    窗口.激活(窗口句柄)
    辅助.等待(50)
    DM.SetPath(辅助.获取资源路径("rc:"))
  线程检测=线程.扩展开启("测试.检测闪退","","测试.线程销毁3","")            //开启多线程检测闪退
    DM.BindWindow(窗口句柄,"normal","normal","normal",0)
    循环(真)
/////////////////////中间脚本部分略过不提//////////////////////////
    循环结束     
    返回 真
功能结束

功能 逻辑型 主线程2()
/////////////////////中间脚本部分略过不提//////////////////////////
    返回 真
功能结束

功能 逻辑型 检测闪退()
    窗口句柄=窗口.找到窗口("BS")
    DM.SetPath(辅助.获取资源路径("rc:"))
    DM.BindWindow(窗口句柄,"normal","normal","normal",0)      
   //30秒循环一次,检测游戏是否闪退
   循环(真)  
        辅助.等待(30000)            
        DM.FindPic(100,68,988,239,"zh.bmp","000000",1.0,0,x4,y4)
        如果(x4>0)
            线程.关闭(线程句柄1)      //关闭主线程1
            线程.关闭(线程句柄2)      //关闭主线程2
            辅助.等待(300)   
            线程句柄1=线程.扩展开启("测试.主线程1","","测试.线程销毁1","")
            跳出   
        如果结束
        辅助.等待(300)
    循环结束
    返回 真
功能结束




作者: 最爱念    时间: 2012-7-17 01:47
经过多次测试,发现问题出在这一句     DM.FindPic(1072,677,1279,719,"断网.bmp","202020",1.0,1,断网x,断网y)
但是还是没搞懂为什么到这里就出错,这个纵坐标677<719,是对的啊
作者: 最爱念    时间: 2012-7-17 01:51
改为DM.FindPic(0,0,1279,719,"断网.bmp","202020",1.0,1,断网x,断网y)    就没有问题,费解啊费解
作者: xj_51love    时间: 2012-7-17 11:27
这种多个线程 公用1个 rc:下的资源 很容易出现资源独占的问题,实际应用意义不大
作者: kevinqq    时间: 2012-7-17 14:39
此问题多见于窗口最小化了,一般都是像在使用GDI DX2,3模式之类的时候 窗口最小化就会出现这样子情况
作者: 最爱念    时间: 2012-7-17 16:43
我这个不是最小化的问题,问题就出在上面那一句找图里面。。。至于原因,还是未知 反正把坐标范围动一下又好了
作者: women17lai8    时间: 2012-11-14 12:13
回复 6楼最爱念的帖子

改了坐标就好了,那说明,你要找的图片不在1072,677,1279,719,这个范围内,而是在这个位置的更左上方
作者: 最爱念    时间: 2012-11-15 10:30
回复 6楼最爱念的帖子

改了坐标就好了,那说明,你要找的图片不在1072,677,1279,719,这个......
women17lai8 发表于 2012-11-14 12:13:41

呵呵几个月前的帖子被你翻出来了。。当时改的新坐标也是在之前坐标范围内的好像,应该是以前版本的某个未知的bug
作者: 厄尔巴斯    时间: 2012-11-15 17:07
回复 8楼最爱念的帖子

可能是你截图的范围太大 截图的范围比你时间要检测的的图像范围大 如果你的搜索范围太靠近检测的图像的话截图边缘左边的坐标就超出了你的范围
作者: 最爱念    时间: 2012-11-15 19:42
回复 8楼最爱念的帖子

可能是你截图的范围太大 截图的范围比你时间要检测的的图像范围大 如......
厄尔巴斯 发表于 2012-11-15 17:07:09

额。也许吧。。。




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1