TC官方合作论坛

标题: 新手求助 [打印本页]

作者: 冬天老咳嗽    时间: 2016-4-8 11:39
标题: 新手求助
我用的TC5.5,在颜色匹配里面,实验了很多次,它找到了弹消息框没找到,没找到弹消息框找到,我不知道为什么
还有在没找到下面鼠标移动里,它不运行+801+548这项,直接运行后面的。如果把第一项的801和548改数字,它又要运行了,求大神指点啊,谢谢!


//启动_热键操作
功能 启动_热键()
    线程ID=线程开启("执行","")
    等待(2000)
    变量 x=-1,y=-1
    变量 ret=找图(0,0,2000,2000,"D:\\窗口图标.bmp","000000",1,0,x,y)
    如果(ret>=0)
        如果(颜色匹配(x+879,y+641,"DE0000",1.0))
            消息框("找到")
            鼠标移动(x+879,y+641)
            等待(5000)
        否则
            消息框("没找到")
            鼠标移动(x+801,y+548)
            等待(2000)
            鼠标移动(x+801,y+548)
            等待(2000)
            鼠标移动(x+851,y+548)
            等待(2000)
            鼠标移动(x+901,y+548)
        结束
        鼠标移动(x+813,y+461)
    否则
        调试输出("未找到")   
    结束
    等待(500)
结束

//终止热键操作
功能 终止_热键()
    线程关闭(线程ID)
结束


作者: 言术    时间: 2016-4-8 12:01
如果(ret>=0)  改成  如果(x>=0)
作者: 冬天老咳嗽    时间: 2016-4-8 15:15
言术 发表于 2016-4-8 12:01
如果(ret>=0)  改成  如果(x>=0)

先谢谢,我把鼠标移动(x+901,y+548)后面加入等待时间,鼠标就可以运行了。但是第一个问题还没弄明白的。
作者: 言术    时间: 2016-4-8 15:41
冬天老咳嗽 发表于 2016-4-8 15:15
先谢谢,我把鼠标移动(x+901,y+548)后面加入等待时间,鼠标就可以运行了。但是第一个问题还没弄明白的。 ...

加个叹号
如果(!颜色匹配(x+879,y+641,"DE0000",1.0))
作者: 冬天老咳嗽    时间: 2016-4-12 23:21
言术 发表于 2016-4-8 15:41
加个叹号
如果(!颜色匹配(x+879,y+641,"DE0000",1.0))

已解决了,谢谢。再问下,那感叹号什么作用啊?
作者: 言术    时间: 2016-4-13 06:03
冬天老咳嗽 发表于 2016-4-12 23:21
已解决了,谢谢。再问下,那感叹号什么作用啊?

颜色匹配API返回值是匹配到了返回颜色索引值,没匹配到返回-1,而你就一种颜色,所以找到这个颜色返回0,没找到返回-1,非零值都为真,所以实际上你找到了返回假(0),而没找到返回真(-1),而叹号就是把真假调换一下(取反)。
作者: 冬天老咳嗽    时间: 2016-4-14 22:58
恩,后来补了学习录像看,谢谢的。




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