VBScript入門

發表于:2007-05-25來源:作者:點擊數: 標簽:VBScript入門
VBScript入門 概述 VBScript是在HTML文件中使用的一種VB 腳本語言 ,它是VB的一個子集,可以實現部分VB的功能,從而使HTML語言得到大大的擴展。如果你學習過VB的話,那么VBScript對你來說只是小菜一碟,你只要記住哪些語法命令在“VBScript”中不能使用就行

VBScript入門

  • 概述

    VBScript是在HTML文件中使用的一種VB腳本語言,它是VB的一個子集,可以實現部分VB的功能,從而使HTML語言得到大大的擴展。如果你學習過VB的話,那么VBScript對你來說只是小菜一碟,你只要記住哪些語法命令在“VBScript”中不能使用就行了,而不必費心去記哪些命令可以使用。但是如果你沒學過VB,也不要緊,因為它只不過是VB的一個子集,所要學的東西比VB要相對少一些,我保證,你可以很快學會。

    我先來說一下本文的特點:主要是面向初學者,我所介紹的也沒有將VBScript全包括,只是其中一些比較簡單又比較常用的內容。

  • HTML簡介

    在學習VBScript之前,我們必須來看一下HTML語言。由于VBScript是建立在HTML這個大的框架的基礎之上的,如果沒有HTML的支持,那么VBScript便無處安置了。

    HTML是一門非常容易的語言,因此當你看到那么多漂亮的網頁的時候,千萬不要以為它是多么的難學。它沒有任何分支及循環語句,它所做的只是告訴瀏覽器要怎樣顯示它所指定的內容?,F在有很多網頁制作工具,如Frontpage等,它們大多可以完成你的多數的工作,甚至于即使你完成不懂HTML,也可以制作出相當水準的網頁。就象有人所說的那樣,“ForntPage”是用來制作網頁的,而學習HTML語言則是為了更好地修改網頁的。

    在HTML語言中有一個概念是“標志詞”,請先看一個最最簡單的例子:

    <HTML>

    <HEAD>

    <TITLE>于愛武的個人主頁</TITLE>

    </HEAD>

    <BODY>

    </BODY>

    </HTML>

    在這個例子中,如<HTML>、<HEAD>等這些被“<”、“>”括在中間的稱為標志詞。還有一點就是標志詞一般(個別的除外)都是成對出現的,如<HEAD>和</HEAD>,它的作用是強調一個段落的開始和結束,即強調的是整體概念。下面我們來分析一下上面的例子:

    <HTML>和</HTML>總是位于程序的開始和結尾處,用來表示程序的開始和結束,是必不可少的一部分;

    <HEAD>和</HEAD>表示程序的頭部,如標題等一些信息便要在頭部中進行設置;

    <TITLE>和</TITLE>用來設置程序的標題,你所設置的標題將會出現在瀏覽器的標題欄中。例如我們如果設置了標題為“于愛武的個人主頁”,那么在瀏覽器的標題欄中就會顯示“于愛武的個人主頁-Microsoft Internet Explorer”(以后如果不是特殊說明,均以IE4為瀏覽器進行試驗)。

    <BODY>和</BODY>是程序的主體部分,各種圖形,文字的輸入均可在此進行。

    如果你使用了FrontPage,那么上述的工作將全部由FrontPage 來替你完成,而不用你寫一句代碼。

    要在程序中書寫文字,可以用<P>和</P>標志詞。我們如果在上例的<HEAD>和</HEAD>加入<P>歡迎光臨于愛武的個人主頁</P>,那么當用瀏覽器打開程序時,就會在窗體上出現“歡迎光臨于愛武的個人主頁”字樣。

    HTML的強大的生命力還在于它的“超連接”功能。我們經??梢栽诰W上見到,當鼠標移至某個圖形或某串文字時,鼠標圖形會變成一只小手,點下鼠標時,就會打開相應的連接,這就是超連接。它的實現也不難,看看下例就明白了。

    <a 表示超連接的地址,而“于愛武的個人主頁”表示在窗體上將顯示的內容。執行本例后,將在窗體上顯示“于愛武的個人主頁”,點擊后將連接到http://yuaiwu.163.net。

    再看下例:<a href="mailto:yuaiwu@163.net">寫信給我</a>,其中的mailto表示此超連接為指向一個信箱,即點后可以給yuaiwu@163.net發信。

    如果我們要制作文件下載功能,更簡單了,只要把超連接指到某一文件就行了,就如下例所示:

    <a href = "sample.zip">下載</a> 這樣,當我們點擊“下載”時,就會把“sample.zip”下載了。

    還有最重要的一點就是圖像問題。怎么樣才能給一個頁面加上一個漂亮的背景圖片呢?這就要在<BODY>和</BODY>中指定,如<body background="images/wb02102_.gif">,說明了在當前目錄的images的子目錄下的wb02102_.gif文件將作為該網頁的背景圖片。使用背景圖片應該注意的就是背景的選擇應與前臺內容相協調,不應有喧賓奪主的感覺,也不應太刺眼,給人反感,還有就是圖片尺寸不應太大,如果讓人花上個把小時去等待一個背景,那會讓人討厭的。

    如果要在窗體上放置一個圖片,那么可以直接寫成“img src=" wb02102_.gif"”就可以了。

  • VBScript語言

我在此并不想鼓吹VBScript的作用是多么多么的強大,我只想說VBScript確實是一門即簡單又富于創造性的語言。我主張學習VBScript這類語言要一邊上機一邊學習,因為它屬于“所見即所得”一類,因此上機可以大大加深你對它的印象。下面我就再舉一個非常小的例子,讓它來帶你進入VBScript的世界。

<HTML>

<HEAD>

<TITLE>于愛武的個人主頁</TITLE>

</HEAD>

<BODY>

<SCRIPT LANGUAGE="VBSCRIPT">

<!--

MSGBOX "歡迎來到于愛武的個人主頁"

-->

</SCRIPT>

</BODY>

</HTML>

先看一下程序的執行結果:出現一個對話框,上面顯示一個歡迎信息:"歡迎來到于愛武的個人主頁"。下面再來分析一下程序代碼:

<SCRIPT LANGUAGE="VBSCRIPT">代表VBScript腳本語言的開始,而</SCRIPT>則是表示VBScript的結束。在這其中放置的代碼,即為VBScript語言。還有一點就是在<SCRIPT LANGUAGE="VBSCRIPT">的下面有一行<!,而在</SCRIPT>的上面有一行“-->”,這兩個符號相對應,是注釋的意思。之所以要將源代碼都注釋掉,是因為如果有某些瀏覽器不支持VBScript的話,可以僅僅把它當作注釋,而不會對程序造成什么影響。當然,像IE這樣支持VBScript的瀏覽器則會自動執行它的,而不必擔心它是注釋內容?!?/FONT>MSGBOX”是一個消息框,它后面所跟的內容即為顯示的內容。

說到這里,便應該再來說說FrontPage了。新版的FrontPage98提供了相當多的功能,它不僅可以制作網頁,還可以輕松地插入VBScript腳本語言,在后面我們會經常用到它。其實VBScript不能算是一門真正的語言,到現在為止,VBScript還沒有一個專門的編輯器和調試器,這和VB是沒法相比的,但是因為VBScriptVB的一個子集,因此VBScript的內容在VB下大多都可以通過,所以我們如果要編寫大段的VBScript程序,可以在VB下進行編寫、調試,等通過后再做稍稍的修正,就可以拿到VBScript下使用了。

即然要完整地學習這門VBScript“語言”,就要像介紹其它語言一樣,從它的變量開始。

  1. VBScript的變量

從某種意義上來講,VBScript只有一種變量類型,即變體。也就是說,一個變量即可以代表數值,也可以用來表示一個字符串。這樣好不好呢?對我們來說是好的,因為它去掉了很多條條框框,可以讓我們無憂無慮的使用變量,但對于程序本身來說,是不利的,因為它大大限制了程序的執行效率(但是我們可以不管它,只要好用就行了)。如果要定義一個變量,可用Dim語句:

Dim a,b

便定義了兩個變量ab。如果你不愿意寫這句話,也可以在沒有進行定義的前提下直接使用變量,但我們不提倡這樣做,因為一方面現在的編程語言都講究規規矩矩,如果你編的程序拿給別人看,亂七八糟的你也沒面子,另一方面,也就是最重要的,它將給你的調試帶來麻煩。下例就是一個麻煩:

Dim a,b,c

A=10

B=20

C=a+bb

Msgbox c

我的本意是求出a+b的值,但是結果卻是10而不是30,這是因為變量bb因為沒有定義過,因此使用它的默認值0。

有一個辦法可以使你強制定義變量,就是在程序的首部加上一句“Option Explicit”,這樣,如果象上例那樣出現了bb之流沒定義過的變量,程序就會出錯,等待你去修改,而不是僅僅給出一個錯誤的結果。

上面我提到,“從某種意義上來講,VBScript只有一種變量類型”,也就是說,在另一意義上來講,VBScript還可有多種變量類型,不過要使用強制轉換手段。經過相應的轉換函數轉換后,我們可以使用整數、長整數、字符串、單精度、雙精度等類型。

ICInt()、CLng()、CSng()、CDbl()四個函數是用來把一個變量轉換成整型、長整型、單精度型和雙精度型。比如:Cint("10")=10, CLng("65537")=65537 ,CDbl("3.5")=3.5。這四種類型是有區別的,首先CInt()、CLng()是把變量轉換成整數,其中CInt()是一般的整數,它占兩個字節,而CLng()是把變量轉換成一個長整數,它占用四個字節。用整數可以表示的范圍是-32768~32767,而長整型的范圍可增加到-2147483648~2147483647,怎么樣,好長吧,因此,如果轉換的結果如果不在整型可以表達的范圍之內的時候,就要考慮用長整型。CSng()、CDbl()都是小數轉換函數,它們可以把一個變量轉換成一個小數,差別僅在于精度不同,如果對精度要求不高,可以采用單精度型,如果對精度要求很高,則就要采用雙精度型。不過,它們兩種都能表示出很大范圍的數,如果沒有特殊要求,單精度數據已能滿足我們的需要了。請看下例:

option explicit

    Dim a,b,c

    A="10"

    B="20"

    C=clng(a)+clng(b)

    Msgbox c

最后輸出結果為30,如果我們將C=clng(a)+clng(b)一句改為C=a+b,那么最后結果應該是1020,因為C的作用是將兩個字符串加在了一起,即為1020;如果改寫為C=clng(a+b)的話,最后結果也是1020,因為它是先把字符串進行相加,然后再把所得到的串轉換成相應的數字。

    IICStr()是將一個變量轉換成一個字符串,如果上例改寫成如下形式:

      option explicit

    Dim a,b,c

    A=10

    B=20

    C=CStr(a)+CStr(b)

    Msgbox c

 

則最后的結果等于1020,而不是30,為什么呢,因為它是先將數值轉換成字符串,然后再進行相加的。

IIICbool()是將一個表達式的值轉換成邏輯值“真”或“假”。轉換的規則是如果表達式為0則結果為假,如果為非零則結果為真,因此對于字符串來說,它的結果永遠為真。反過來,如果把邏輯真看成數值的話,那么它等于-1,邏輯假為0??聪铝斜磉_式:

A=10

B=10

C=CBool(a) 結果為True

C=Cbool(CStr(a)) 結果為true

C=Cbool(a)+Cbool(b) 結果為-2

對于前兩個結果,很好理解,但是第三個呢,是因為Cbool(a)Cbool(b)均為true,再進行加法運算時,自動轉換成整數,即-1-1進行相加,得出了結果-2

IVCdate()函數可以將一個變量轉換成一個日期型變量,如:Cdate("1999-2-25")便是一個日期型結果。轉換的意義在于我們可以正確地判斷兩個日期的先后順序,對于兩個字符串“1999-2-2”和“1999-2-3”來說,是“1999-2-2<1999-2-3”,而當轉換后變成了Cdate(1999-2-2)>Cdate(1999-2-3),道理很明顯,2號是在3號的前面。

V.以上介紹了一些轉換函數,也提到了VBScript中的數據類型,其中最重要的當屬字符串型了。HTML的大部分任務是顯示指定內容的字符串,由于VBScript的加入,更使得字符串處理功能加倍“強壯”。通過VBScript函數,我們可以對字符串進行載取、相加等操作。

Left、Right是對字符串進行左截或右截。請看示例:

A="123456789"

B=left(a,3)

Msgbox b

C=right(a,3)

Msgbox c

這樣得出的結果是b="123",c="789"。

如果我們要載取一個字符串中間的幾個字符,可以用Mid函數,如C=mid(a,4,3)得出的結果是c="456"。

求一個字符串的長度用的是Len函數,比如說Len("1234567")=7。

VI.數組:

VBScript也象其它編程語言一樣,提供了數組操作。定義一個數組的格式如下:

Dim a(10)

即定義了一個數組,數組的名稱是a ,而它的元素是從010 11個。下面我們來給這11個元素分別賦一個值:

For I=0 to 10

a(I)=I

Next

11個元素的值分別是0,1,,10。如果想要定義其它類型的數組,按照上面的格式做稍微的修改就可以了。

    2.上面介紹的是VBScript的變量,我們必須結合其它內容才能充分學好它。下面我們來說一下VBScript中又一個要點:分支與循環。

    I.分支指的是If … Then… Else…End if結構的條件判斷語句。

    如下面的程序:

    a =inputbox("你今年多大了")

    if Cint(a)<20 then

    msgbox "你是一個小同志"

    else

    msgbox "你不是一個小同志"

    end if

上例中用到了一個函數InputBox(),它的作用是接收從鍵盤上輸入的字符串,比如上例我如果輸入20,則a="20"。此例的思路是由用戶輸入一個年齡值,然后判斷它的大小。如果它小于20,則輸出"你是一個小同志",否則輸出"你不是一個小同志"。

此例如果簡化成下面的形式:

    a =inputbox("你今年多大了")

    if Cint(a)<20 then

    msgbox "你是一個小同志"

 

end if

則只對輸入值小于20的時候有響應,而對“否則”的內容不做回答,要是你輸入的年齡值是40,你會發現程序根本就不理你。還可以進一步簡化成

    a =inputbox("你今年多大了")

    if Cint(a)<20 then msgbox "你是一個小同志"

 

而將end if省略。但是由于這種寫法不便于閱讀,因此我希望大家能夠按照要求寫好每一步。

再對上例進行一下改造:

    a =inputbox("你今年多大了")

    if Cint(a)<10 then

    msgbox "你是一個小孩子"

    elseif cint(a)<20 then

    msgbox "你是一個小同志"

    elseif cint(a)<40 then

    msgbox "你在青年"

    elseif cint(a)<50 then

    msgbox "你在中年"

    else

    msgbox "你已上了年紀"

    end if

 

還有一類分支結構是Select … Case… End Select。舉個例子來說明一下:我們要根據輸入的數字來確定現在是幾月份。

Dim a,mon

a =inputbox("現在是幾月份?")

select case cint(a)

case 1

mon=""

case 2

mon=""

case 3

mon=""

case 4

mon=""

case 5

mon=""

case 6

mon=""

case 7

mon=""

case 8

mon=""

case 9

mon=""

case 10

mon=""

case 11

mon="十一"

case 12

mon="十二"

end select

msgbox "現在是" + mon +"月份"

這個例子如果也用If … Then 來完成,恐怕要多寫不少的代碼吧!Select結構還有一種用法,請看下例:

Dim a,quarter

a =inputbox("現在是幾月份?")

select case cint(a)

case 1,2,3

quarter=""

case 4,5,6

quarter=""

case 7,8,9

quarter=""

case 10,11,12

quarter=""

end select

msgbox "現在是第" + quarter +"季度"

這個例子中,我們可以根據輸入的月份來確定現在是處在第幾個季度。

If分支和Select分支都是十分有用的,我們可以根據不同的需要來選用不同的方法,這樣才能充分發揮VBScript 的作用。

IIFor … Next循環:

VBScript的循環主要有For … Next循環和Do While … Loop循環兩種,我們先來講一下For … Next循環。請看下例:

    dim i,sum

    for i=1 to 100

    sum=sum+i

    next

    msgbox sum

    此例是計算從1100100個數的和,結果是5050,我們從小就在珠算上玩這個游戲。如果要計算從11000的和,很簡單,只要把上例中的100改為1000就行了。請再看一個例子:

    dim i,sum

    for i=1 to 100 step 2

    sum=sum+i

    next

    msgbox sum

 

這個例子是用來計算從1100之間的奇數的和。如果要計算從1100間偶數的和,只要把循環條件改成for i=2 to 100 step 2就可以了。

Step為步長之意,即規定循環變量每變化一次時的增量值,如果不寫,則默認為1。我們甚至可以把Step的值定為負值,如下例,依然可以實現1100間偶數的求和工作:

    dim i,sum

    for i=100 to 1 step -2

    sum=sum+i

    next

    msgbox sum

 

IIIDo While … Loop循環:

For循環是規定了循環的次數進行循環,而Do While … Loop循環則是當條件滿足時進行循環,否則便跳出循環,不象For循環那樣嚴格地限定循環次數。

還以計算1100100個數的和為例,改用Do While … Loop循環表示為:

Dim I,sum

I=0

Do while I<100

I=I+1

    Sum=sum+I

 

Loop

此例的結果是正確的。但是如果我們把上述循環中的兩行的位置變換一下,成為:

Do while I<100

Sum=sum+I

    I=I+1

Loop

得出的結果將是4950而不是5050。問題出在哪了呢?就在循環的判斷條件上。循環剛一開始的時候,I=0,sum=sum+I=0,當I=99時,sum=sum+99,然后I=I+1=100,已經不再滿足循環的條件,因此就退出了循環。也就是說,同樣循環了100次,但是執行的是從099的累加,而不是從1100的累加。

兩種循環方式同樣是各有所長的,我們也應該根據實際情況來決定用哪種方式,千萬不能生搬硬套。

    3VBScript的自定義函數:

自定義函數包括子程序和函數兩部分,它們兩者的區別在于函數有返回值,而子程序沒有。從本質上來說,兩者沒有太大的區別。

我們先來舉一個例子來說明一下子程序:

<Script language="vbscript">

<!--

option explicit

dim a

sub age()

a=inputbox("請輸入你的年齡:")

end sub

age

msgbox a

-->

</script>

此例把輸入年齡這個功能做成一個子程序,在主程序里調用,調用的格式也很簡單,只要寫出子程序的名字即可,就象調用一個內部命令一樣省事。

函數和子程序類似,只是它能夠返回一個值。我們來編一個求兩個數中較大值的函數:

dim a,b,c

a=10

b=20

c=max(a,b)

msgbox c

function max(x,y)

if x<y then

max=y

else

max=x

end if

end function

此例中的max()函數即是我們自己編寫的求較大值的函數,它里邊有兩個參數,使用時只要放入兩個參數就可以了。還有一點要注意的是函數的返回格式:我們的函數名是max,最后只要寫上max=…就可給這個函數一個返回值了。

到此,我們介紹了VBScript的大部分的語法內容,這部分雖然沒有什么意思,但是它是你的其它工作的前提,如果沒有堅實的語法基礎,其它什么工作都做不好,希望大家能夠多多地練習。

  1. VBScript中的對象:

 

VB是一門面向對象的程序語言,VBScript也不例外(起碼它用到了對象的概念)。面向對象給編程帶來了很多的益處,這在VBScript中也得到了體現。

1.象VB一樣,我們可以在窗體上加上命令按鈕、文本框等控件(對象),如果你使用的是FrontPage,那你的工作量很小,只要按照所見即所得的風格將控件擺放在正確的位置就可以了,如果你想用記事本等編輯器直接編輯網頁,那你可要費一番力氣。

在介紹其它對象之前,我先來說一個比較特殊的對象:定時器。它的作用是每隔一段時間就去執行一件事情,如果你學習過VB,這將是非常容易理解的。定時器的屬性主要是:Enabled、Interval,Enabled表示它是否可用,而Interval是指每隔多長時間事件發生一次,它的單位是1/1000秒。

如果要加入一個定時器,最好選用FrontPage。在菜單中選擇Insert-Advanced-ActiveX Control后,就會彈出一個對話框,在下拉菜單中就可以找到Timer Object。有一點千萬不能忘記,就是要給它取一個名字,否則你是無法使用的。你還可以點擊屬性鈕對其Enabled、Interval屬性進行設置?,F在我們來加入一個名字為"tmrLbl"時間間隔為200毫秒的定時器,在HTML的源代碼中將會出現下列代碼:

<object ID="tmrLbl" WIDTH="39" HEIGHT="39"

CLASSID="CLSID:59CCB4A0-727D-11CF-AC36-00AA00A47DD2">

<param name="_ExtentX" value="2064">

<param name="_ExtentY" value="2302">

<param name="Interval" value="200">

</object>

只要看一眼,就會知道用手工編寫的難度了。

現在僅僅是有了一個定時器,我們還必須對它的事件進行編碼,才能使用它。定時器有一個事件叫作"Timer"。每隔一段時間,就會把這個事件中的事情執行一遍。我們可以對它編程如下:

<script LANGUAGE="VBScript">

<!--

Sub tmrLbl_Timer()

Msgbox "歡迎!"

end sub

-->

</script>

請稍等片刻,先把定時器的Interval屬性的值調的大一些,2000或更大,否則你會以為是病毒發作了。此程序可以每隔一段時間內出現一個對話框,顯示“歡迎”字樣,如果你把時間設為200,那么你可能還來不及反應,就會出現下一個對話框,結果是你不能關閉對話框,瀏覽器也不能關上,因此有必要把時間間隔調的大一些,使你有時間去結束它。

  1. 標簽:

 

用和加入定時器同樣的方法來加入兩個標簽(Microsoft Forms 2.0 Label),并取名為lblYu0lblYu1,它們的字體可以設置的大一些,這樣以便于觀察,將將兩個標簽的Caption屬性設為"Y""U"(設置方法同定時器控件)。然后再對定時器重新進行編程:

<script LANGUAGE="VBScript">

<!--

Sub tmrLbl_Timer()

lblyu0.forecolor=rgb(255*rnd,255*rnd,255*rnd)

lblyu1.forecolor=rgb(255*rnd,255*rnd,255*rnd)

end sub

-->

</script>

先看一下效果,嗯,不錯!然后我們再來分析一下這段程序。我們用到了標簽控件的前景顏色屬性:ForeColor,只要對它進行改變,就可以改變標簽的顏色,正如你所見。

RGB()是一個顏色函數,它有三個參數,分別表示紅、綠、藍三色的比例,0表示沒有,255表示全色。要表示紅色可寫成RGB(255,0,0),即將紅色的比例置為100%,而其它兩種顏色均沒有。那么要表示白色呢,即為RGB255,255,255),黑色呢,讀者可以自己考慮一下。

還有一個是“Rnd”,它表示產生一個從01之間的隨機數,如果用Rnd*255,就可以表示出從0255之間的隨機數了。

因此上例可以顯示出顏色隨機變化的標簽了。如果你有耐心,可以調試出更加漂亮的標簽來。

3Window

“窗體”(Window),即瀏覽器打開的窗口。它的對象名是Window ,它的一個重要的屬性就是Status,也就是瀏覽器底下的狀態條,這樣我們就可以讓狀態條顯示我們自己的信息了。

如果我們這樣寫:Window.status="于愛武的個人主頁",那么窗體的狀態條上就會顯示相就的字符串。

Window對象有兩個事件OnLoad OnUnLoad。加入以下代碼:

<Script language="vbscript">

<!--

option explicit

sub window_onload()

msgbox "歡迎光臨"

end sub

sub window_onunload()

msgbox "歡迎再來"

end sub

-->

</script>

這樣,每當打開這個網頁的時候,就會顯示“歡迎光臨”的提示信息,而當退出這個頁面的時候,則會顯示“歡迎再來”的告別語。

  1. 控件數組

在上面介紹變量的類型的時候提到了VBScript可以定義數組,在這里你將看到數組的類型甚至可以是控件。就是標簽為例,我們在窗體上來建立10個標簽,分別命令名lblYu0lblYu9,它們的Caption屬性分別設為“歡”、“迎”、“光”、“臨”、“我”、“的”、“個”、“人”、“主”、“頁”,然后就向上面的例子一樣,再加入一個定時器,并對定時器進行編碼:

<script LANGUAGE="VBScript">

<!--

Dim a(9)

Set a(0)=lblYu0

(省略)

Set a(9)=lblYu9

Sub tmrLbl_Timer()

For I=0 to 9

A(I).forecolor=rgb(255*rnd,255*rnd,255*rnd)

Next

end sub

-->

</script>

clearcase/" target="_blank" >ccelerator" VALUE="0">

  當然,如果不用數組,也完全可以實現,但是要多寫很多代碼,而且不便調試。

六.總結

我在上面曾多次提到FrontPage的使用,的確,它是個不錯的東東,我們可用它輕松的插入控件,并可以實現VBScript腳本語言的編寫,如果多多練習,肯定會使你達到事半功倍的效果。

我們已經把VBScript的內容大致的瀏覽了一遍,這些已經可以讓你在網上小試身手了。當然如果你想成為真正的高手,這點是不夠的,還要繼續“深造”才行。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97