资源预览内容
第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
第9页 / 共28页
第10页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第22章WSH(WindowScriptHost)基本介紹,張智星jangmirlab.orghttp:/mirlab.org/jang台大資工系MIR實驗室,本章大綱,大綱本章介紹WSH的背景及特色,以及入門範例,讓讀者對於WSH有基本的認識。主題22-1:背景及特色22-2:簡易範例22-3:呼叫其它應用程式22-4:取用命令列參數22-5:執行選項,2/28,22-1:背景及特色,本小節說明WSH的發展背景及相關特色。,3/28,背景,在Windows98之前,微軟的作業系統只有提供DOS的批次檔案進行重複的工作,例如設定執行命令的搜尋路徑、複製大量檔案等等。隨Web的風行,微軟發表了WSH,是可以在作業系統進行直接執行的程式語言。由於JavaScript和VBScript的完備性,使得WSH馬上成為在微軟作業系統上的標準底稿語言。對於不需要介面且重複性高的管理工作,可以直接從DOS命令列呼叫WSH的程式碼,也可以在檔案總管直接點選來執行。WSH是跟著WindowsNT4OptionPack一起發行,同時也是Windows98的一部份。,4/28,WSH的安裝(1/2),我們須將它以Windows的附加元件型式來安裝。在安裝Windows系列時,會一併安裝WSH。如果你不確定你的作業系統是否已經安裝WSH,可以在DOS視窗下輸入cscript,如果得到如下列的回應(請見次頁),就表示你的作業系統已經安裝了WSH,而且版本是5.8。,6/28,WSH的安裝(2/2),7/28,如果DOS視窗無法執行cscript,就表示此作業系統沒有安裝WSH。你可以至輸入wshdownload來進行搜尋,就可找到WSH的下載網址。,22-2:簡易範例,本小節將用簡單的範例來說明WSH。,8/28,範例22-1,主題:使用JScript來印出Helloworld!執行hello01.js檢視原始碼程式碼說明通常以JScript撰寫的WSH檔案,附檔名通常是js,作業系統也會將以JScript為主的WSH底稿引擎關聯到此種類型的檔案。在WSH要印出訊息所用的函數是WScript.Echo,這和用戶端以及伺服器端的JavaScript所用的列印函數都不同。,9/28,JavaScript列印函數的比較,在用戶端的網頁(Client-sidescriptinHTML):document.write()在伺服器端的ASP(Server-sidescriptinASP):Response.Write()在單機上的WSH(StandalonescriptinWSH):WScript.Echo(),10/28,執行方式,你可以使用任意文字編輯器產生此檔案後,然後再用下列三種不同的方式來執行:在DOS視窗下輸入cscripthello01.js,就可以在DOS視窗印出Helloworld!。在DOS視窗下輸入wscripthello01.js,就會開啟一個灰色小視窗,印出Helloworld!。直接在檔案總管點選hello01.js,並產生與第二個方法相同的灰色小視窗。,11/28,範例22-2,主題:使用VBScript來印出Helloworld!執行hello01.vbs檢視原始碼程式碼說明你也可以使用三種不同的方法來執行,所得到的結果和hello01.js將會一樣。以VBScript撰寫的WSH檔案,附檔名通常是vbs,作業系統也會將以VBScript為主的WSH底稿引擎關聯到此種類型的檔案。,12/28,範例22-3,主題:以wsf為附檔名撰寫WSH檔案執行hello01.wsf檢視原始碼程式碼說明同樣可以使用前述的三種方法來執行此檔案。使用wsf附檔名的WSH檔案內容是以XML呈現。使用wsf的好處:可以同時使用JScript和VBScript的程式碼。,13/28,範例22-4,主題:同時使用JScript和VBScript於一個wsf檔案執行hello02.wsf檢視原始碼程式碼說明在一個wsf檔案中可以包含兩種不同的script。,14/28,22-3:呼叫其它應用程式,本小節將以一些範例來示範如何以wsh呼叫其他應用程式。,15/28,呼叫其他應用程式的方法,以JScript撰寫WSH時,下面兩列程式碼都可以產生shell物件。,16/28,範例22-5(僅適用於WinXP),主題:呼叫錄音機在背景播放一個聲音檔案執行audioPlay01.js檢視原始碼程式碼說明欲執行其他應用程式,可先產生一個WSH的shell物件,然後再使用run()函數來呼叫其他應用程式。shell.Run(command,0)的第二個參數,0代表不開啟所呼叫應用程式的視窗。1則表示開啟所呼叫應用程式的視窗。當然也可以呼叫媒體播放器來播放,但因為媒體播放器太肥太慢了!所以使用錄音機來播放聲音檔案就可以了。此範例僅適用於WinXP,其他平台可改用下列範例。,17/28,範例22-5(2),主題:呼叫小畫家並開啟一圖檔執行imageDisplay01.js檢視原始碼程式碼說明欲執行其他應用程式,可先產生一個WSH的shell物件,然後再使用run()函數來呼叫其他應用程式。shell.Run(command,0)的第二個參數,0代表不開啟所呼叫應用程式的視窗。1則表示開啟所呼叫應用程式的視窗。,18/28,範例22-6,主題:使用WSH開啟記事本並載入文件執行run01.js檢視原始碼程式碼重點說明所開啟的應用程式會保持開啟狀態,WSH會持續執行其後的程式碼。若要等待應用程式被關閉後,才繼續執行其後的WSH程式碼,可以在run()之後再加上第三個參數。,19/28,範例22-8,主題:打開小算盤,並顯示相關的資訊執行exec01.js檢視原始碼程式碼說明while(oExec.Status=0)WScript.Sleep(100);這行程式碼,若程式未開啟,將會持續等待,直至開啟完畢。最後三行,會讓程式印出相關訊息。,20/28,22-4:取用命令列參數,本小節將介紹如何抓取命令列參數,讓WSH更具彈性。,21/28,範例22-9,主題:如何一一印出命令列的參數執行cmdArgument01.js檢視原始碼程式碼重點說明在DOS命令視窗輸入:cscriptcmdArgument01.jsMondayTuesdayWednesday“可得到No.ofarguments=3args(0)=Mondayargs(1)=Tuesdayargs(2)=Wednesday的結果args.Count()和args.length都是代表輸入參數的個數。,22/28,範例22-10,主題:如何逐次播放音效檔案執行audioPlay02.js檢視原始碼程式碼說明可以在DOS視窗輸入如下:cscriptaudioPlay02.jschimes.wavnotify.wavding.wav極可聽到三個音效連續播放的聲音。上述三個音效檔案,都已經放在範例目錄之下。若要尋找更多的音效檔案,可以到c:windowsmedia目錄尋找。此範例僅適用於WinXP。,23/28,22-5:執行選項,本小節將介紹如何以選項來指定執行的方式。,24/28,列出執行選項(1),由DOS視窗輸入cscript/?列出執行選項說明,25/28,列出執行選項(2),若在DOS視窗輸入”wscript/?”,也會得到類似的選項說明,26/28,不顯示微軟的Logo,當直接在DOS視窗輸入cscripthello01.js時如果不想顯示Microsoft(R).這些字眼,可以在DOS視窗輸入cscripthello01.js/Nologo,27/28,範例22-11(1),主題:對個別的WSH檔案來設定執行選項連結:執行結果檢視原始碼程式碼重點說明:我們可以使用滑鼠右鍵點選hello01.js,選取內容後,再選取Script。勾選在指定秒數之後,停止Script,並選擇5秒,且不勾選當Script在命令主控台執行時顯示標誌,按下確定後,會在同一個目錄下產生一個檔案hello01.wsh。,28/28,範例22-11(2),說明此檔案記錄hello01.js在執行時的選項,Path=.代表對應的WSH檔案的路徑,Timeout=5表示執行的最長的時間是5秒(若超過此時間,系統會中斷程式碼的執行),DisplayLogo=0代表在DOS視窗執行時,不顯示微軟的標誌。hello01.js經過了這樣的設定,其效果就完全等效於在DOS視窗輸入cscripthello01.js/T:5/Nologo。我們可將Path=.改成相對路徑,如此可以同時搬動hello01.js和hello01.wsh,而不必再更改Path=.這一列。以上的方法是針對每個WSH檔案可以設定個別的執行選項。若要設定整體的WSH選項,只要在DOS視窗輸入”wscript”,就可以設定此選項,設定方式於前述相同。,29/28,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号