按键精灵 脚本-学习VBS的一个不错的教程

 更新时间:2007年02月26日 00:00:00   作者:  
现在看到很多朋友都不明白VBS,但我也没有时间全部写完,所以一天写一些,边写边和大家交流,也希望有朋友能接着写或指出我的错误。
今天我就从总体上对VBS进行介绍,希望能给大家一个直观的印象。另外,讲解与按键官网的按键精灵教程(李悦制作)相结合,帮大家看懂这个东东。
一、概述
要让计算机做事情就必须由人给它指令。原来的指令很复杂,都是些0011001之类的东西,后来逐渐简化,指令也更接近于人类的语言。VBS(Microsoft(R) Visual Basic(R) Scripting)也是高级语言的一种,和其他高级语言相比,它有简单易学的特点,是电脑初学者涉足编程领域的良好入口。
如果说从低级语言进化到高级语言是人类控制计算机的战略问题,那么具体的设置变量、循环就是控制计算机的具体战术问题。我们现在学习的也就是用VBS让计算机为我们工作的战术。
二、从最简单的东西入手。
网络叫卖脚本:
vbs i
vbs i=10
while i>0
SayString 卖XXX,价格面议。
vbs i=i-1
delay 10000
endfor
看到这个脚本很多人就嗤之以鼻了,实现不断叫卖的方法很多,有的比这个脚本简单几倍。但随着讲解的进行,我们会发觉VBS提供给我们的是一个强大的工具。下面先来这几行都是什么意思。
vbs i //告诉计算机有个叫i的变量。
vbs i=10 //这个变量为10
while i>0 //当这个变量大于0的时候就执行下面直到看见第一个endfor的地方。
SayString 卖XXX,价格面议。 //按键语句:输出文字
vbs i=i-1 //这个变量减去1,然后又把减1后的数作为i的值。
delay 10000 //按键语句:暂停10秒(10000毫秒)
endfor //回到while处
效果:叫卖10次后就结束。
现在我要花点力气解释一下为什么要折腾出这么多麻烦的东西。
变量的用处和重要性
其实这个程序完全可以写成
SayString 卖XXX,价格面议。
delay 10000
SayString 卖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 i
vbs i=10
while i>0
ifexpression i<=5
SayString 卖XXX,价格面议。
endif
ifexpression i>5
SayString 卖YYY,价格面议。
endif
vbs i=i-1
delay 10000
endfor
其实我们用了个编程的小技巧,就是用变量i的大小控制程序的走向。可见前5次卖YYY,后5次卖XXX。
或者我们先叫XXX一次,再叫YYY一次,然后重复前面的动作:
vbs i
vbs i=10
while i>0
ifexpression i mod 2 = 0
SayString 卖XXX,价格面议。
endif
ifexpression i mod 2 = 1
SayString 卖YYY,价格面议。
endif
vbs i=i-1
delay 10000
endfor
这里也用了一个用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……
哎呀,暂时写到这里。

其实这个脚本是按键精灵下的脚本,没有写清楚,不好意思啊,如果想看vbs教程,建议下载一份 vbscript手册,然后看脚本之家的vbs栏目的前期发的文章。开始的时候基础发的多一些。
https://www.jb51.net/books/210.html
微软官方的Vbscript参考手册

相关文章

最新评论