马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
很多初学TC的朋友在向别人请教问题的时候被无数遍提示:去看帮助文档去!
其实很多人都在郁闷,帮助文档看了无数遍,视频教程看了无数遍,开源代码看了无数遍,有没有点越看越迷糊的感觉呢?
原因其实很简单,这些经典的东东都是大神们呕心沥血之作,里面全是专业的术语,我们这些零基础的小白们自然是越看越迷糊了!
今天,在这里,冷月跟大家一起学习,怎么看TC帮助文档,明天,我们再来学习怎么看大神们无私奉献出来的开源代码!
首先上一段帮助文档的内容,大家最常用的窗口空间,找到窗口命令:
- 中文命名空间: 窗口
- 英文命名空间: window
- 函数功能: 查找窗口
- 中文函数原型: 整型 找到窗口(字符型 windowname)
- 英文函数原型: int findwindow(string windowname)
- 参数:
- windowname: 窗口名(窗口标题)
- 返回值: 返回找到窗口句柄的整型值,没有找到窗口返回0
- 举例:
- 整型 窗口句柄
- 字符型 内容
- 窗口句柄=窗口.找到窗口("魔兽世界")
- 如果(窗口句柄==0)
- 辅助.消息框("窗口没有找到")
- 否则
- 内容=转换.整型转字符型(窗口句柄)
- 辅助.消息框(内容)
- 如果结束
- Example:
- int name
- string wowname
- name=window.findwindow("魔兽世界")
- if(name==0)
- help.messagebox("窗口没有找到")
- else
- wowname=convert.inttostr(name)
- help.messagebox(wowname)
- endif
- 执行结果: 找到 魔兽世界窗口,如果窗口存在,输出窗口句柄的整型值,否则输出窗口没有找到
复制代码
好了,下面我们一句一句来理解!
第一句:中文命名空间: 窗口
从这句我们可以知道,其实API命令也就是函数,只不过这些函数是封装在TC里的,我们看不到!
我们使用API命令,其实就是在调用这些封装好的函数!
那么这一句的意思就是,这个找到窗口命令,它的中文空间名为"窗口",而TC调用函数的格式是"空间名.函数名"
那么我们就可以知道这个"找到窗口"命令的调用格式为:窗口.找到窗口()
第二句:英文命名空间: window
英文的写法!略过
第三句:函数功能: 查找窗口
这句,额,就是说明这个"找到窗口"函数命令的功能!是不是太简单了,太模糊了?如果我们有耐心看到返回值那一句就能明白,这个函数命令的功能其实是找到窗口的窗口句柄!
第四句:中文函数原型: 整型 找到窗口(字符型 windowname)
这句大家可能看得就有点迷糊了,不好理解,但是写成这样大家是不是好理解一点了呐?中文函数原型:功能 整型 找到窗口(字符型 windowname)
对,我们可以把它理解为函数头!通过对照帮助文档里0 语法说明-6函数封装功能-6.1函数定义里的内容
我们可以知道函数头的格式为:功能+函数返回类型+函数名+(参数)
那么我们就可以知道"找到窗口"这个函数命令:它的返回类型是整型的,中文函数名是"找到窗口",(参数)为字符型的
第五句:英文函数原型: int findwindow(string windowname)
英文的写法!略过
第六句:参数:
第七句:windowname: 窗口名(窗口标题)
第六第七句是合在一起的,为什么要分开,我也不知道!
那么我们理解了第四句,这一句也可以理解了!这一句的意思就是(参数)是为:窗口名或者说是窗口标题!
那么看到这里,我们就可以知道这个"找到窗口"函数命令,是传入字符型的窗口标题参数,返回整型的窗口句柄值!
第八句:返回值: 返回找到窗口句柄的整型值,没有找到窗口返回0
这一句就是说明了函数的返回值!
这个"返回值",曾经迷糊了无数的小白!无数小白们都在问,什么是返回值,为什么有时候"如果(是否成功)"是找到了,为什么有时候"如果(是否找到==0)"是找到了,为什么枚举出来的窗口句柄字符型转整型的时候会出现转换失败?为什么...无数个为什么!
其实,只要理解了"返回值",大多数为什么都能迎刃而解!
首先上一个最简单的函数封装代码:
- 空间 测试
- 功能 整型 判断(整型 a)
- 如果(a>0)
- 返回 1
- 否则
- 返回 -1
- 如果结束
- 返回 0
- 功能结束
- 空间结束
复制代码 然后我们调用:
整型 大小=测试.判断(100)
100大于0所以"大小"这个整型变量里的值就是函数返回的值1
整型 大小=测试.判断(-100)
-100小于0所以"大小"这个整型变量里的值就是函数返回的值-1
整型 大小=测试.判断(0)
0等于0所以"大小"这个整型变量里的值就是函数返回的值0
看了上面这个例子,大家对返回值有了一点直观的认识么?
总结,返回值就是函数执行以后反馈出来的一个值,这个值可以是整型的,逻辑型的,也可以是字符型的,数组型的!
返回值的类型和值是由函数作者决定的,如果我们不能看到函数的源码是不知道函数的返回值是什么的!
所以!帮助文档里就会写出每一个函数命令的各个返回值,而我们可以利用返回值来判断函数命令的执行情况!
比如:鼠标空间里的"移动"命令,移动了就返回逻辑型真,没有移动就返回逻辑型假!
图像空间里的"找图"命令,没找到图返回整型-1,找单图的时候找到返回整型0,找多图的时候返回整型0为找到第一张图,返回整型1为找到第二张图...依次类推
字符空间里的"分割"命令,分割成功返回逻辑型真,失败返回逻辑型假,而且这个命令比较特殊,它的参数也有个返回值,返回类型是字符型数组,数组里的值为分割出来的字符串!
第九句:举例:
这里往下就是使用命令的实例了,实例分中文版和英文版!
从实例中我们看到(以中文版为例说明),首先,定义了两个变量,"整型 窗口句柄"和"字符型 内容"
再来这一句"窗口句柄=窗口.找到窗口("魔兽世界")"
就是把执行完"找到窗口"函数所返回的值赋值到整型变量"窗口句柄"里
然后这句"如果(窗口句柄==0)"就是一个判断,判断整型变量"窗口句柄"里的值是否是0
再后面就是如果语句的流程,当如果括号里的条件成立(用逻辑型来表达就是为真)就执行"如果"到"否则"之间的代码,也就是"辅助.消息框("窗口没有找到")"
当如果括号里的条件不成立(用逻辑型来表达就是为假),那么就执行"否则"到"如果结束"之间的代码,也就是"内容=转换.整型转字符型(窗口句柄)"和"辅助.消息框(内容)"
备注:"如果"到"如果结束"之间没有"否则"的情况下,条件成立执行"如果"到"如果结束"之间的代码,条件不成立则执行"如果结束"以后的代码
最后一句:执行结果: 找到 魔兽世界窗口,如果窗口存在,输出窗口句柄的整型值,否则输出窗口没有找到
这句应该很好理解了,它说明的是举例里的代码执行的结果!
其实很多时候我们都可以用这句来了解TC流程控制,比如,为什么窗口存在就会输出窗口句柄的整型值呢?
首先,我们都知道一个窗口的句柄值都是一个纯数字字符串,(怎么知道的?这个.....这个是常识好不好!)
而且,通过返回值的说明我们可以知道"没有找到窗口返回0",所以我们可以通过设立条件(窗口句柄==0)来作为是否找到窗口的判断!
而且,我们知道了这个命令的返回值是整型的,而消息框命令的参数却是字符型的,所以我们必须进行"整型转字符型"转换以后才能输出!
好了,对于"帮助文档"的学习就到这了,其实帮助文档已经很详尽了,了解它,就能写出自己想要的脚本了!
而且它是中文的!中文的吖!如果你连中文都不能理解的话,那.......
另:由于TC现在发展势头极其迅猛,版本更新很快!所以"帮助文档"里难免会有一点点错漏!比如:帮助文档里的 系统.设置路径("d:\\"),在2.1版本里所有路径统一以"\"结尾,我们就应该写成:系统.设置路径("d:\")
所以,当我们脚本出现错误的时候,先别急着燥火,慢慢分析原因!实在不行,论坛,QQ,YY都有很多热心人会帮助你的!
|