WSHWindowScriptHost基本总体介绍讲义_第1页
WSHWindowScriptHost基本总体介绍讲义_第2页
WSHWindowScriptHost基本总体介绍讲义_第3页
WSHWindowScriptHost基本总体介绍讲义_第4页
WSHWindowScriptHost基本总体介绍讲义_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WSHWindowScriptHost基本总体介绍讲义2本章大綱大綱本章介紹WSH的背景及特色,以及入門範例,讓讀者對於WSH有基本的認識。主題22-1:背景及特色22-2:簡易範例22-3:呼叫其它應用程式22-4:取用命令列參數22-5:執行選項322-1:背景及特色本小節說明WSH的發展背景及相關特色。4背景在Windows98之前,微軟的作業系統只有提供DOS的批次檔案進行重複的工作,例如設定執行命令的搜尋路徑、複製大量檔案等等。隨Web的風行,微軟發表了WSH,是可以在作業系統進行直接執行的程式語言。由於JavaScript和VBScript的完備性,使得WSH馬上成為在微軟作業系統上的標準底稿語言。對於不需要介面且重複性高的管理工作,可以直接從DOS命令列呼叫WSH的程式碼,也可以在檔案總管直接點選來執行。WSH是跟著WindowsNT4OptionPack一起發行,同時也是Windows98的一部份。5WSH的應用WSH最適合重複性高、不需要介面的工作。備份或拷貝大量檔案。建立大量帳號與密碼。讀取環境變數或取得作業系統的相關資訊。建立桌面的捷徑。設定網路印表機。設定網路相關資訊。更改Registry的資訊。抓取網頁的資訊。與資料庫進行資料的存取。進行大量資料的開啟與列印。6WSH的安裝(1/2)我們須將它以Windows的附加元件型式來安裝。在安裝Windows系列時,會一併安裝WSH。如果你不確定你的作業系統是否已經安裝WSH,可以在DOS視窗下輸入「cscript」,如果得到如下列的回應(請見次頁),就表示你的作業系統已經安裝了WSH,而且版本是5.8。7WSH的安裝(2/2)如果DOS視窗無法執行cscript,就表示此作業系統沒有安裝WSH。你可以至輸入「wshdownload」來進行搜尋,就可找到WSH的下載網址。822-2:簡易範例本小節將用簡單的範例來說明WSH。9範例22-1主題:使用JScript來印出「Helloworld!」執行hello01.js檢視原始碼程式碼

說明通常以JScript撰寫的WSH檔案,附檔名通常是js,作業系統也會將以JScript為主的WSH底稿引擎關聯到此種類型的檔案。在WSH要印出訊息所用的函數是WScript.Echo,這和用戶端以及伺服器端的JavaScript所用的列印函數都不同。//如何印出"HelloWorld!WScript.Echo("Helloworld!");10JavaScript列印函數的比較在用戶端的網頁(Client-sidescriptinHTML):document.write(…)在伺服器端的ASP(Server-sidescriptinASP):Response.Write(…)在單機上的WSH(StandalonescriptinWSH):WScript.Echo(…)11執行方式你可以使用任意文字編輯器產生此檔案後,然後再用下列三種不同的方式來執行:在DOS視窗下輸入「cscripthello01.js」,就可以在DOS視窗印出「Helloworld!」。在DOS視窗下輸入「wscripthello01.js」,就會開啟一個灰色小視窗,印出「Helloworld!」。直接在檔案總管點選hello01.js,並產生與第二個方法相同的灰色小視窗。12範例22-2主題:使用VBScript來印出「Helloworld!」執行hello01.vbs檢視原始碼程式碼說明你也可以使用三種不同的方法來執行,所得到的結果和hello01.js將會一樣。以VBScript撰寫的WSH檔案,附檔名通常是vbs,作業系統也會將以VBScript為主的WSH底稿引擎關聯到此種類型的檔案。'如何印出"HelloWorld!WScript.Echo("Helloworld!")13範例22-3主題:以wsf為附檔名撰寫WSH檔案執行hello01.wsf檢視原始碼程式碼說明同樣可以使用前述的三種方法來執行此檔案。使用wsf附檔名的WSH檔案內容是以XML呈現。使用wsf的好處:可以同時使用JScript和VBScript的程式碼。<job><scriptlanguage="JScript">//使用wsf檔案來印出HelloWorld!WScript.Echo("HelloWorld!");</script></job>14範例22-4主題:同時使用JScript和VBScript於一個wsf檔案執行hello02.wsf檢視原始碼程式碼說明在一個wsf檔案中可以包含兩種不同的script。<job><scriptlanguage="JScript">

WScript.Echo("「Helloworld」viaJScript!");</script>

<scriptlanguage="VBScript">

WScript.Echo("「Helloworld」viaVBScript!")</script></job>1522-3:呼叫其它應用程式本小節將以一些範例來示範如何以wsh呼叫其他應用程式。16呼叫其他應用程式的方法以JScript撰寫WSH時,下面兩列程式碼都可以產生shell物件。shell=WScript.CreateObject("WScript.Shell");shell=newActiveXObject("WScript.Shell");17範例22-5(僅適用於WinXP)主題:呼叫錄音機在背景播放一個聲音檔案執行audioPlay01.js檢視原始碼程式碼說明欲執行其他應用程式,可先產生一個WSH的shell物件,然後再使用run()函數來呼叫其他應用程式。shell.Run(command,0)的第二個參數,0代表不開啟所呼叫應用程式的視窗。1則表示開啟所呼叫應用程式的視窗。當然也可以呼叫媒體播放器來播放,但因為媒體播放器太肥太慢了!所以使用錄音機來播放聲音檔案就可以了。此範例僅適用於WinXP,其他平台可改用下列範例。audioFile="WindowsXP啟動.wav";

shell=newActiveXObject("Wscript.Shell");

command="sndrec32/play/close"+audioFile;

shell.Run(command,0);18範例22-5(2)主題:呼叫小畫家並開啟一圖檔執行imageDisplay01.js檢視原始碼程式碼說明欲執行其他應用程式,可先產生一個WSH的shell物件,然後再使用run()函數來呼叫其他應用程式。shell.Run(command,0)的第二個參數,0代表不開啟所呼叫應用程式的視窗。1則表示開啟所呼叫應用程式的視窗。//使用小畫家顯示影像檔案imageFile="annie.jpg";shell=newActiveXObject("Wscript.Shell");command="mspaint"+imageFile;shell.Run(command,1);19範例22-6主題:

使用WSH開啟記事本並載入文件執行run01.js檢視原始碼程式碼重點說明所開啟的應用程式會保持開啟狀態,WSH會持續執行其後的程式碼。若要等待應用程式被關閉後,才繼續執行其後的WSH程式碼,可以在run()之後再加上第三個參數。shell=WScript.CreateObject(“WScript.Shell”);

shell.Run(“cmd/Kdir”);

shell.Run(“wordpad.exerun01.js”);20範例22-8主題:打開小算盤,並顯示相關的資訊執行exec01.js

檢視原始碼程式碼說明while(oExec.Status==0)WScript.Sleep(100);這行程式碼,若程式未開啟,將會持續等待,直至開啟完畢。最後三行,會讓程式印出相關訊息。WshShell=newActiveXObject(“WScript.Shell”);

oExec=WshShell.Exec(“calc.exe”);

while(oExec.Status==0)WScript.Sleep(100);WScript.Echo("Status="+oExec.Status);WScript.Echo("ProcessID="+oExec.ProcessID);WScript.Echo("ExitCode="+oExec.ExitCode);2122-4:取用命令列參數本小節將介紹如何抓取命令列參數,讓WSH更具彈性。22範例22-9主題:如何一一印出命令列的參數執行cmdArgument01.js

檢視原始碼程式碼重點說明在DOS命令視窗輸入:

"cscriptcmdArgument01.jsMondayTuesdayWednesday“

可得到"No.ofarguments=3args(0)=Mondayargs(1)=Tuesdayargs(2)=Wednesday"的結果args.Count()和args.length都是代表輸入參數的個數。WScript.Echo("No.ofarguments=“+WScript.Arguments.Count());for(i=0;i<args.length;i++)

WScript.Echo("args("+i+")="+args(i));23範例22-10主題:如何逐次播放音效檔案執行audioPlay02.js

檢視原始碼程式碼說明可以在DOS視窗輸入如下:cscriptaudioPlay02.jschimes.wavnotify.wavding.wav

極可聽到三個音效連續播放的聲音。上述三個音效檔案,都已經放在範例目錄之下。若要尋找更多的音效檔案,可以到c:\windows\media目錄尋找。此範例僅適用於WinXP。args=WScript.Arguments;shell=newActiveXObject("Wscript.Shell");for(i=0;i<args.length;i++){

command="sndrec32/play/close“+

args(i);shell.Run(command,0,true);

}2422-5:執行選項本小節將介紹如何以選項來指定執行的方式。25列出執行選項(1)由DOS視窗輸入「cscript//?」列出執行選項說明26列出執行選項(2)若在DOS視窗輸入”wscript/?”,也會得到類似的選項說明27範例22-11(1)主題:對個別的WSH檔案來設定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论