马上加入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都有很多热心人会帮助你的! 
 
 
 |