资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
网上教程 - 让我们共同学习VBS 来源: 兄弟工作组按键精灵讨论区(欢迎大家来讨论)作者: redorange标题: 让我们共同学习VBS现在看到很多朋友都不明白VBS,但我也没有时间全部写完,所以一天写一些,边写边和大家交流,也希望有朋友能接着写或指出我的错误。今天我就从总体上对VBS进行介绍,希望能给大家一个直观的印象。另外,讲解与按键官网的按键精灵教程(李悦制作)相结合,帮大家看懂这个东东。一、概述要让计算机做事情就必须由人给它指令。原来的指令很复杂,都是些0011001之类的东西,后来逐渐简化,指令也更接近于人类的语言。VBS(Microsoft(R) Visual Basic(R) Scripting)也是高级语言的一种,和其他高级语言相比,它有简单易学的特点,是电脑初学者涉足编程领域的良好入口。如果说从低级语言进化到高级语言是人类控制计算机的战略问题,那么具体的设置变量、循环就是控制计算机的具体战术问题。我们现在学习的也就是用VBS让计算机为我们工作的战术。二、从最简单的东西入手。网络叫卖脚本:vbs ivbs i=10while i0SayString 卖XXX,价格面议。vbs i=i-1delay 10000endfor看到这个脚本很多人就嗤之以鼻了,实现不断叫卖的方法很多,有的比这个脚本简单几倍。但随着讲解的进行,我们会发觉VBS提供给我们的是一个强大的工具。下面先来这几行都是什么意思。vbs i /告诉计算机有个叫i的变量。vbs i=10 /这个变量为10while i0 /当这个变量大于0的时候就执行下面直到看见第一个endfor的地方。SayString 卖XXX,价格面议。 /按键语句:输出文字vbs i=i-1 /这个变量减去1,然后又把减1后的数作为i的值。delay 10000 /按键语句:暂停10秒(10000毫秒)endfor /回到while处效果:叫卖10次后就结束。现在我要花点力气解释一下为什么要折腾出这么多麻烦的东西。变量的用处和重要性其实这个程序完全可以写成SayString 卖XXX,价格面议。delay 10000SayString 卖XXX,价格面议。delay 10000重复N次SayString 卖XXX,价格面议。delay 10000其实再复杂的程序段都能被还原成顺序的程序,用很多复杂的东东不是为了显示编程能力,而是为了给自己方便。当我们一直卖XXX的时候可能没有什么感觉,但当我们卖YYY的时候呢?要全部改过吗?或者我们要重复1000次,后来只重复500次了,难道要认真地数500下,然后删除后面的吗?当然,我们编这个小程序改起来还比较惬意。但要提高发展就得做大程序,还必须要依靠我们的变量朋友。变量其实是一个字符代号,象你我的名字一样,为的是把各个变量区别开来,让他们分头工作。为变量取名字的时候可以用数字、字符、和下划线,但不可以用汉字、空格和其它奇奇怪怪的符号,另外数字不能用于第一个字符。在使用变量之前要先写一个象vbs i这样的语句,意思是现在本人指派一变量,取名为i,参加到这个程序运行中。其实你可以不用履行这样的报名程序,直接在程序的某处使用i,但实践证明这是一个不好的习惯,让你写大程序的时候寸步难行。然后vbs i=10则告诉程序,这个变量i现在的值为10,以后凡是用到i的地方,就相当于是10在那里。比如vbs j=i+1其实就相当于j=10+1,所以j的值为11。变量的魅力不仅在于它可以代替数字,而且还可以代替字符,但和数字比起来,字符有其特殊性。比如:vbs i=字符vbs j=串接vbs a=i & j此时a就是字符串接。注意这里出现的两个新符号:号和&符号。可能有人已经猜出来他们的作用了。号之间的内容为字符。电脑对vbs i=10和vbs i=10有着截然不容的理解。&号为字符串接号。如果a=j & i,那么a就是串接字符。知道了变量的用法后,我们就可以把叫卖程序改得更有趣。比如我们想让程序说不同的话,先说10次卖XXX,再说10次卖YYY。那我们就可以写成:vbs ivbs i=10while i0ifexpression i5SayString 卖YYY,价格面议。endifvbs i=i-1delay 10000endfor其实我们用了个编程的小技巧,就是用变量i的大小控制程序的走向。可见前5次卖YYY,后5次卖XXX。或者我们先叫XXX一次,再叫YYY一次,然后重复前面的动作:vbs ivbs i=10while i0ifexpression i mod 2 = 0SayString 卖XXX,价格面议。endififexpression i mod 2 = 1SayString 卖YYY,价格面议。endifvbs i=i-1delay 10000endfor这里也用了一个用i控制程序运行的方法。mod是和+、-、*一样的运算符号,作用是取余数。如10 mod 2 = 0的意思是10除以2,其余数是0。同样9 mod 2 = 1,8 mod 2 = 0,7 mod 2 = 1,6 mod 2 = 0,5 mod 2 = 1哎呀,暂时写到这里。先说长变量名的问题。和人名一样,人少的时候,用一个字还行,比如尧、舜、禺。人多了就必须用多一点字了,比如帕尔多帕契夫斯基。今后为了阅读程序的方便,还是多写几个字吧。vbscall 和 vbs 一样都是标志。前者表示将用一个函数。至于什么是函数,可以看以后的帖子。现在先解释一下函数是什么。如果还没有忘记数学的话我们应该知道函数就是x-y的一种关系(映射)。即特定的x一定会得到特定的y,而不是相同的x,前后两次计算得到不同的y。VBSCall GetCursorPos(y,h)stdlib.vbs可以看成三部分。VBSCall是标志,提醒电脑这句话是个按键精灵的函数。stdlib.vbs可以不用管他,通常理解为函数库头文件名称。将来也许会出现其他的比如iostring.vbs。这个文件在按键精灵安装文件夹的script文件夹里。最重要的就是中间的GetCursorPos(y,h)了。我们会发现所有VBSCall打头的句子都是中间的这部分不一样。还记得数学里函数是怎么表示的吗?f(x)=y或者是f(x)=一串计算式,比如ax2+bx+c。f的意思是founction(函数)的头字母,在计算机里f可以是这个函数的名字,比如GetCursorpos(是get cursor position,得到鼠标位置的意思。瞧这里也涉及到取名的问题,这个名字是不是取得不错,比起只有一个两个字母的名字,这个名字既直观又相对较短)。x自然就是括号里的东西,有时我们有几个x,他们就用,号隔开。比如GetCursorPos(y,h)的第一个x是变量y,第二个x是变量h。这时,你会发现少了f(x)=y中的y,也就是特定的x对应的特定的y。在这里有y,但对本函数来说已经不重要了,我们需要的是函数把y变成鼠标的横坐标值,h变成鼠标的纵坐标值。实际上这里不是真正意义上的函数,从函数库stdlib.vbs中来看,这里的所谓函数其实是QMDispatch.QMFunction对象的一个方法。算了,这个问题以后再说。同样的道理,FindColor(y-200,h-200,y+200,h+200,ffaa8c,g,k)有七个x,要做的工作是在前四个x的范围内找到第五个x指定的颜色值,把发现第五个x指定值的颜色点的x坐标放到第六x,y坐标放到第七个x。f(x)=y中的y就不管了。FindColor的前四个参数组成一个小于等于屏幕的方框,查询的颜色就在这个小方框内进行。依次代表屏幕左边到寻色方框左边框的距离,上边到寻色方框上边的距离,左边到寻色方框右边的距离,上边边到寻色方框下边的距离。注意上下左右都是怎么说的。如果是0,0,1,1的话,说明是左上角一个像素点范围内查询。如果是0,0,800,600的话,说明是800*600这么大快区域。至于什么是像素点,请看我的签名处提到的那个帖子。dim 不是变量。是VBS的保留字,保留字的意思是VBS语言的一部分,不能被用户作为变量、函数的名字。dim的意思是提醒计算机它后面跟的是将来要用的变量,可以不写。 我们从1楼知道了变量的重要性,现在总结一下。变量在汇编语言(低级语言)的时候就已经出现了。现在到了VBS这样的高级语言,变量将发挥更重要的作用。作用1:替代数字或字符。在程序里有些数字或字符会用到很多次,编辑和修改的时候一次要改很多,而且容易漏掉某些地方。现在我们先用变量把他们定义了,让变量代替他们到程序里去折腾,将来编辑修改时会很方便。方便的后果是,你的程序更不容易出错。作用2:参加运算。这是变量之所以叫“变”的原因。它能随时被赋予新的含义。但需要注意的是,你的变量原来是数字的最好不要中途变成了字符或者相反的变换。这会让电脑不知所措的。具体的原因等你学习了更多的东西自然就知道了。另外字符的运算只能是连接,就是&号,使前后两字符串连接在一起。同时数字与字符不能在一起运算。幸运的是我上面说的那么多禁止的地方很多都是老皇历了。在VBS里有些禁忌是无所谓的。比如数字和字符,VBS会根据运算符号来确认到底参加运算的应该看成数字好还是看成字符好。i=10和i=10有时候VBS分的不是那么清楚,它会根据是+还是&来判断结果应该是什么。作用3:控制程序走向。通过1楼,我们看到了最后的两个叫卖脚本。它通过条件的不同来产生不同的叫卖效果。这里的效果实际上是程序根据不同的条件走向了不同的地方。前一个例子是我们通过变量的大小来决定叫卖哪一句,后一个例子是我们通过变量除以2的余数来决定叫卖哪一句。这一贴我们着重说一说用变量来控制程序的走向。电脑读脚本如同我们读书一样。注意:这里我们写的东西确实是程序,却老是说成脚本。这里先解释一下:一般我们说的程序是直接能被电脑运行的文件。比如Qmacro.exe文件。当我们双击它的时候按键精灵就跳出来了。你尝试过将这个文件用记事本打开吗?其实记事本可以打开任何文件。打开后,我们会发现很多乱七八糟的符号,这些符号是只有计算机才能读懂的。我们能读懂的并且计算机能直接运行的(只是看起来是直接可以运行)只有脚本,即Script。试验过用记事本打开程序文件后千万不要改动并保存啊,改了一小点都不能运行了。好了,只需要记住,电脑读脚本和我们读脚本没什么两样。只是它读的比我们快,并且是以行作为读取单位。电脑是一边读脚本一边按照脚本的意思来执行命令。既然如此,我们在写脚本的时候就能充分发挥我们的文学细胞,运用插叙、倒叙、顺序、注释等多种写法来完成我们的脚本。电脑里大概有注释、顺序、选择序、循环序和跳转序几种读脚本的方法。先说注释。注释的作用是让读者更明白文中的意思。脚本里的注释有点不一样,电脑可不需要什么注释,它只负责按命令执行。我们在脚本中加入注释的目的是为了自己方便。比如我们的程序写长了,这时可以在脚本里加入点注释,提醒自己谁谁谁是干什么的。加入方法:Rem 注释语句。程序在遇到Rem 的时候就视而不见了。但后面我会告诉你,电脑还是看得见用Rem 打头的语句的。注释使我们能控制电脑哪句可以执行,哪句不能。比如你修改你的脚本的时候,原来的那句话也许将来还能用上,于是你在添加新语句的时候不必将原来的删除,而是在它前面直
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号