TC官方合作论坛

 找回密码
 立即注册
查看: 4889|回复: 6

大漠后台循环找图,x、y坐标不刷新

[复制链接]
发表于 2016-7-31 11:25:53 | 显示全部楼层 |阅读模式

马上加入TC

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

x
求大侠帮忙看一下,大漠后台循环找图,第一次找到图后输出的x y坐标是正确的,但是第二次找图,就算没有图仍然显示找到图了,而且就是第一次找到的图的坐标,代码如下:

功能 脚本线程()
    变量 dm,ts,hwnd,ret,rat,find,s,u,c,t,x,y
    dm=com("dm.dmsoft")                                                //调用大漠
    等待(100)
    t=dm.SetPath("E:\\test")                                             //设置路径
    等待(100)                        
    u=dm.SetDict(0,"tc.txt")                                             //设置字库
    等待(100)
    如果(u==0)
        消息框("失败")
    结束
    c=dm.GetNowDict()                                                    //获取字库序号
    调试输出(c)
    等待(200)
    消息框("请将鼠标放在指定窗口,并等待2秒")
    等待(1500)
    hwnd=dm.GetMousePointWindow()                                      //鼠标获取窗口句柄
    调试输出(hwnd)
    如果(hwnd==0)
        消息框("获取句柄失败")
    结束
    等待(500)
    ret = dm.BindWindow(hwnd,"gdi","windows","windows",0)             //绑定后台
    如果(ret==0)
        消息框("绑定后台失败")
    结束
    等待(1000)
    循环(I)
        等待(500)
        find =dm.FindPic(0,0,1920,1080,"7.bmp","000000",0.9,0,x,y)      //后台找图
        调试输出(find)
        调试输出(x)
        调试输出(y)
        等待(500)
        如果(find>-1)
            等待(200)
            dm.MoveTo(x,y)
            等待(10)
            dm.LeftClick()
        否则
            调试输出("未找到")
        结束
        等待(500)
        ts.FreeProcessMemory(hwnd)
        等待(1500)
        find =dm.FindPic(0,0,200,200,"11.bmp","000000",0.9,0,x,y)       //后台找图
        调试输出(find)
        调试输出(x)
        调试输出(y)
        等待(500)
        如果(find>-1)
            跳出
        否则
            调试输出("未找到")
        结束
        等待(500)
    结束
    s=dm.UnBindWindow()
    如果(s==1)
        消息框("解绑成功")
    结束
结束   


回复

使用道具 举报

 楼主| 发表于 2016-8-2 10:39:50 | 显示全部楼层
tan0360 发表于 2016-8-1 17:14
可以用 就请你采纳 ,不然 回答没回报多不好

找不到采纳啊
回复 支持 1 反对 0

使用道具 举报

发表于 2016-7-31 20:33:28 | 显示全部楼层
没给你家条件 在else 下加  a =  0  这样 a的值 改变   就不循环了  ,或者 在默认下 加 a= 0
回复 支持 1 反对 0

使用道具 举报

发表于 2016-7-31 20:31:57 | 显示全部楼层
你的功能不多代码不少 。请优化一下你的代码 ,把绑定 找图写成函数调用 ,前面的 大漠绑定 设置路径字库 别写的那么麻烦  还有你这单线程 写成死循环 不好
最好写成条件循环 。。这样不容易出错。。
比如
变量 a  =1 ,结果
循环( a == 1)
等待(100)
结果 =dm.FindPic(0,0,1920,1080,"7.bmp|11.bmp","000000",0.9,0,x,y)      //后台找图  //清合理利用大漠文档中找多图 原则
       //你这里加这多的东西么用
        如果(find>-1)
            等待(200)
            dm.MoveTo(x,y)
            等待(10)
            dm.LeftClick()
  else
       调试输出(结果)
    调试输出(“没有找到图”)
结束
结束
  如果是 不同图不一样的操作  则使用   
选择(结果)  //这里的 结果 就是  你上边 找图返回的值 如果 没有 返回 -1  如果 找到  ,从索引 0 开始 你有几个图 就有几个索引。
条件  0  //带表找到第一个图 7.bmp
功能
条件  1 //代表 找到第二图 11.bmp
  共能  
  //也可以写个
默认
调试输出(“未找到 需要的图 ”)
//然后是你找不到图要干的事
结束
   

         

评分

参与人数 1威望 +10 金币 +10 收起 理由
yur126 + 10 + 10 赞一个!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2016-8-1 10:12:23 | 显示全部楼层
tan0360 发表于 2016-7-31 20:31
你的功能不多代码不少 。请优化一下你的代码 ,把绑定 找图写成函数调用 ,前面的 大漠绑定 设置路径字库  ...

非常感谢~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-1 11:10:12 | 显示全部楼层
tan0360 发表于 2016-7-31 20:33
没给你家条件 在else 下加  a =  0  这样 a的值 改变   就不循环了  ,或者 在默认下 加 a= 0  ...

真的很感谢,效率提高了不少
回复 支持 反对

使用道具 举报

发表于 2016-8-1 17:14:19 | 显示全部楼层
可以用 就请你采纳 ,不然 回答没回报多不好
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-5-19 07:44 , Processed in 0.046404 second(s), 26 queries .

Powered by 海安简单软件服务部

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

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