TC官方合作论坛

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

[已解决] 新手求助

[复制链接]
发表于 2016-4-8 11:39:17 | 显示全部楼层 |阅读模式

马上加入TC

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

x
我用的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 15:41:14 | 显示全部楼层
冬天老咳嗽 发表于 2016-4-8 15:15
先谢谢,我把鼠标移动(x+901,y+548)后面加入等待时间,鼠标就可以运行了。但是第一个问题还没弄明白的。 ...

加个叹号
如果(!颜色匹配(x+879,y+641,"DE0000",1.0))
回复 支持 反对

使用道具 举报

发表于 2016-4-8 12:01:59 | 显示全部楼层
如果(ret>=0)  改成  如果(x>=0)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-8 15:15:33 | 显示全部楼层
言术 发表于 2016-4-8 12:01
如果(ret>=0)  改成  如果(x>=0)

先谢谢,我把鼠标移动(x+901,y+548)后面加入等待时间,鼠标就可以运行了。但是第一个问题还没弄明白的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-12 23:21:16 | 显示全部楼层
言术 发表于 2016-4-8 15:41
加个叹号
如果(!颜色匹配(x+879,y+641,"DE0000",1.0))

已解决了,谢谢。再问下,那感叹号什么作用啊?
回复 支持 反对

使用道具 举报

发表于 2016-4-13 06:03:55 | 显示全部楼层
冬天老咳嗽 发表于 2016-4-12 23:21
已解决了,谢谢。再问下,那感叹号什么作用啊?

颜色匹配API返回值是匹配到了返回颜色索引值,没匹配到返回-1,而你就一种颜色,所以找到这个颜色返回0,没找到返回-1,非零值都为真,所以实际上你找到了返回假(0),而没找到返回真(-1),而叹号就是把真假调换一下(取反)。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-14 22:58:02 | 显示全部楼层
恩,后来补了学习录像看,谢谢的。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-9-28 09:48 , Processed in 0.080637 second(s), 23 queries .

Powered by 海安简单软件服务部

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

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