一、wscript對(duì)象
描述:提供對(duì) Windows 腳本宿主對(duì)象模型根對(duì)象的訪問。
詳述:WScript 對(duì)象是 Windows 腳本宿主對(duì)象模型層次結(jié)構(gòu)的根對(duì)象。它可在任何腳本文件中使用,不需要特定的聲明。
WScript 對(duì)象提供對(duì)以下信息的訪問命令行參數(shù), 腳本文件的名稱,宿主文件名, 宿主版本信息。
WScript 對(duì)象可用來創(chuàng)建對(duì)象,連接對(duì)象, 與對(duì)象斷開連接, 同步事件, 以編程方式停止腳本的執(zhí)行,將信息輸出到默認(rèn)輸出設(shè)備(Windows 對(duì)話框或命令控制臺(tái))。
WScript 對(duì)象也可用來設(shè)置腳本運(yùn)行的模式(交互模式或批處理模式)。
就像剛才我們說的一樣,對(duì)象通過兩種其自有的特性想我們提供工具,這兩種特性分別是“屬性”和“方法”。
二、屬性
1、Arguments 屬性
描述:用于返回 Arguments 對(duì)象(這個(gè)對(duì)象我們以后會(huì)學(xué),現(xiàn)在只需要了解就行)。
語法:object.Arguments
參數(shù):object ,WScript 對(duì)象
例子:顯示本vbs文件運(yùn)行的參數(shù)
Set Arg = WScript.Arguments
For i = 0 To Arg.Count - 1
MsgBox Arg(i)
Next
將上面這些代碼保存為vbs文件,然后將一個(gè)或者數(shù)個(gè)任意的文件拖放到這個(gè)vbs文件上面上,那么他會(huì)逐個(gè)顯示你拖放的文件。(這僅僅給出了一個(gè)實(shí)例,用到了Arguments對(duì)象,其的具體用法我們以后再了解)
2、FullName 屬性
描述:返回主機(jī)可執(zhí)行文件(CScript.exe 或 WScript.exe)的完全限定路徑。
語法:object.FullName
參數(shù):object ,WScript 對(duì)象
例子:顯示本機(jī)wscript的路徑
MsgBox wscript.fullname
在默認(rèn)的情況下會(huì)顯示"C:\WINDOWS\system32\wscript.exe"
3、Interactive 屬性
描述:設(shè)置或確定腳本模式。
語法:object.Interactive
參數(shù):object ,WScript 對(duì)象
說明:Interactive 屬性返回一個(gè)布爾值。
有批處理和交互兩種模式。在交互模式(默認(rèn)模式)下,該腳本為用戶提供交互功能。啟用對(duì) Windows 腳本宿主的輸入和輸出。該腳本可以將信息顯示在對(duì)話框中并等待用戶提供反饋。在批處理模式下,不支持這種類型的用戶交互,所有對(duì) WSH 的輸入和輸出被禁用。還可以使用 Windows 腳本宿主命令行開關(guān) / / I(對(duì)于交互式)和 / / B(對(duì)于批處理模式)來設(shè)置腳本模式。
例子:顯示本機(jī)的腳本模式
MsgBox WScript.Interactive
4、Name 屬性
描述:返回 WScript 對(duì)象(主機(jī)可執(zhí)行文件)的名稱。
語法:object.Name
參數(shù):object ,WScript 對(duì)象
例子:
MsgBox WScript.name
5、Path 屬性
描述:返回包含主機(jī)可執(zhí)行文件(CScript.exe 或 WScript.exe)的路徑名稱
語法:object.Path
參數(shù):object ,WScript 對(duì)象
例子:
MsgBox WScript.Path
如果你的wscript.exe是在”C: \ WINDOWS \ system32 \ wscript.exe“那么本屬性會(huì)顯示”C: \ WINDOWS \ system32“
6、ScriptFullName 屬性
描述:返回當(dāng)前運(yùn)行腳本的完整路徑。
語法:object.ScriptFullName
參數(shù):object ,WScript 對(duì)象
例子:顯示本vbs的完整路徑
MsgBox WScript.ScriptFullName
神奇吧,這個(gè)vbs竟然知道他自己的名字。
7、ScriptName 屬性
描述:返回當(dāng)前運(yùn)行腳本的文件名。
語法:object.ScriptName
參數(shù):object ,WScript 對(duì)象
說明:剛才我們知道了用ScriptFullName可以獲取vbs文件自身的完整路徑,加入你只想要這個(gè)文件的名字改怎么辦?看例子。
例子:顯示本VBS文件的名字
MsgBox WScript.ScriptName
怎么樣?看到了嗎?
8、Version 屬性
描述:返回 Windows 腳本宿主的版本。
語法:object.Version
參數(shù):object ,WScript 對(duì)象
例子:顯示本機(jī)腳本宿主版本
MsgBox WScript.version
三、方法
1、CreateObject方法
描述:創(chuàng)建一個(gè)對(duì)象
語法:CreateObject(appname.objecttype,[servername])
解釋:appname 必需的,Variant(字符串)。提供該對(duì)象的應(yīng)用程序名。
objecttype 必需的;Variant(字符串)。待創(chuàng)建對(duì)象的類型或類。
servername 可選的; Variant (String). 要在其上創(chuàng)建對(duì)象的網(wǎng)絡(luò)服務(wù)器名稱。
說明:要?jiǎng)?chuàng)建 ActiveX 對(duì)象,只需將 CreateObject 返回的對(duì)象賦給一個(gè)對(duì)象變量:
Set ExcelSheet = CreateObject("Excel.Sheet")'的引用。
每個(gè)支持自動(dòng)化的應(yīng)用程序都至少提供一種對(duì)象類型。
例如,一個(gè)字處理應(yīng)用程序可能會(huì)提供 Application 對(duì)象,Document 對(duì)象,以及 Toolbar 對(duì)象。要?jiǎng)?chuàng)建 ActiveX 對(duì)象,只需將 CreateObject 返回的對(duì)象賦給一個(gè)對(duì)象變量:
Dim ExcelSheet As Object'聲明一個(gè)對(duì)象變量來存放該對(duì)象
Set ExcelSheet = CreateObject("Excel.Sheet")
ExcelSheet.Application.Visible = True '設(shè)置 Application 對(duì)象使 Excel 可見
ExcelSheet.Cells(1, 1).Value = "This is column A, row 1"'在表格的第一個(gè)單元中寫些文本
ExcelSheet.SaveAs "C:\ TEST.xls"'將該表格保存到 C:\test.xls 目錄
ExcelSheet.Application.Quit'使用應(yīng)用程序?qū)ο蟮?Quit 方法關(guān)閉 Excel。
Set ExcelSheet = Nothing'釋放該對(duì)象變量
上述代碼將啟動(dòng)該應(yīng)用程序創(chuàng)建該對(duì)象,在本例中就是創(chuàng)建一個(gè) Microsoft Excel 電子數(shù)據(jù)表。對(duì)象創(chuàng)建后,就可以在代碼中使用自定義的對(duì)象變量來引用該對(duì)象。在下面的示例中,可以使用對(duì)象變量 ExcelSheet 來訪問新建對(duì)象的屬性和方法,以及訪問 Microsoft Excel 的其它對(duì)象,包括應(yīng)用程序?qū)ο蠛蛦卧窦稀?/p>
2、GetObject方法
描述:從文件中檢索一個(gè) Automation 對(duì)象, 或檢索strProgID 參數(shù)所指定的對(duì)象
語法:object.GetObject(strPathname [,strProgID], [strPrefix])
參數(shù):object必選項(xiàng)。WScript 對(duì)象。
strPathname必選項(xiàng)。包含要獲取的對(duì)象的完整路徑和名稱。
strProgID可選項(xiàng)。表示對(duì)象的程序標(biāo)識(shí)符(ProgID)的字符串。
strPrefix可選項(xiàng)。如果指定了參數(shù) strPrefix,Windows 腳本宿 主將在創(chuàng)建對(duì)象之后把對(duì)象的輸出接口與腳本文件連接起來。在對(duì)象中觸發(fā)事件時(shí),Windows 腳本宿主將調(diào)用一個(gè)子例程,其名稱包括 strPrefix 和事件的名稱。
例如,如果 strPrefix 為 "MYOBJ_",對(duì)象產(chǎn)生的事件為 "OnBegin,",那么 Windows 腳本宿主將調(diào)用腳本中的 "MYOBJ_OnBegin" 子例程。
說明:如果當(dāng)前存在對(duì)象的實(shí)例或者希望使用已經(jīng)被裝載的文件創(chuàng)建對(duì)象,可使用 GetObject 方法。如果當(dāng)前不存在實(shí)例,而且不希望從已經(jīng)裝載的文件中啟動(dòng)對(duì)象,請(qǐng)使用 CreateObject 方法。
如果一個(gè)對(duì)象將自己注冊(cè)為單實(shí)例對(duì)象(例如,Microsoft Word 7.0 中的 Word.Basic 對(duì)象),那么無論執(zhí)行 CreateObject 多少次也只能創(chuàng)建對(duì)象的一個(gè)實(shí)例。此外,對(duì)于單實(shí)例的對(duì)象,如果用零長(zhǎng)度的字符串語法("")調(diào)用,GetObject 總是返回同樣的實(shí)例,而且如果省略路徑參數(shù)將導(dǎo)致錯(cuò)誤。使用 GetObject 不能獲得對(duì) Visual Basic 4.0 以及以前版本創(chuàng)建的 Microsoft Visual Basic(R)類的引用。
GetObject 適用于所有的 COM 類,不受創(chuàng)建對(duì)象所用語言的限制。
示例:在執(zhí)行下列代碼時(shí),與指定的 strPathname 相關(guān)聯(lián)的應(yīng)用程序被啟動(dòng),指定文件中的對(duì)象被激活。 如果 strPathname 是一個(gè)零長(zhǎng)度的字符串 (""), GetObject 將返回指定類型的新對(duì)象實(shí)例。如果 strPathname 參數(shù)完全被省略,GetObject 將返回指定類型的當(dāng)前活動(dòng)對(duì)象。如果不存在指定類型的對(duì)象,將發(fā)生錯(cuò)誤。
Dim MyObject As Object
Set MyObject = GetObject("C:\CAD\SCHEMA.CAD")
MyApp = MyObject.Application
某些應(yīng)用程序允許激活一個(gè)文件的某些部分。如果要這樣做,需要在文件名后添加一個(gè)驚嘆號(hào) (!),然后跟一個(gè)字符串,標(biāo)識(shí)出文件中希望被激活的部分。關(guān)于如何創(chuàng)建該字符串的信息,請(qǐng)參閱創(chuàng)建對(duì)象的應(yīng)用程序的有關(guān)文檔。
例如,在一個(gè)繪圖應(yīng)用程序中,文件中存儲(chǔ)的一幅圖可能包含多層??梢允褂孟旅娴拇a激活繪圖文件中稱為 schema.cad 的一層:
Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")
如果不指定對(duì)象的類,COM 將根據(jù)所提供的文件名來確定要啟動(dòng)的應(yīng)用程序和要激活的對(duì)象。但是,某些文件可能支持多個(gè)對(duì)象類。例如,一幅圖紙可能支持三種不同類型的對(duì)象:一個(gè)應(yīng)用程序?qū)ο?,一個(gè)繪圖對(duì)象,以及一個(gè)工具欄對(duì)象,它們都是同一個(gè)文件的組成部分。
在下例中,F(xiàn)IGMENT 是一個(gè)繪圖應(yīng)用程序的名稱,DRAWING 是它支持的對(duì)象類型之一。
Dim MyObject As Object
Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")
3、Quit 方法
描述:退出執(zhí)行,返回指定的錯(cuò)誤代碼。
語法:object.Quit [intErrorCode]
解釋:object 必選項(xiàng)。 WScript 對(duì)象。
intErrorCode可選項(xiàng)。如果包含此參數(shù),WScript 將把它作為進(jìn)程終止碼返回。如果省略了 intErrorCode,WScript 將返回零 (0) 作為進(jìn)程終止碼。
例子:
下例退出執(zhí)行并返回錯(cuò)誤代碼 1:
WScript.Quit
4、Sleep 方法
描述:使腳本進(jìn)程在指定的毫秒數(shù)內(nèi)處于非活動(dòng)狀態(tài),然后繼續(xù)執(zhí)行。
語法:object.Sleep(intTime)
參數(shù):object必選項(xiàng)。WScript 對(duì)象。
intTime腳本進(jìn)程在非活動(dòng)狀態(tài)的時(shí)間長(zhǎng)度,以毫秒為單位。
說明:在睡眠狀態(tài)下,腳本將繼續(xù)執(zhí)行所處理的事件。如果腳本引擎超時(shí)或被中斷,睡眠將立即結(jié)束。
例子:
wscript.sleep(3000)
Set apprun = CreateObject("wscript.shell")
apprun.run "%windir%\notepad.exe"
此例子將會(huì)延遲3秒啟動(dòng)記事本。
5、timeout 方法
描述:設(shè)置腳本的生存時(shí)間
語法:wscript.timeout
例子:
wscript.timeout = 10
MsgBox "hello"
6、Echo 方法
描述:將輸出發(fā)送到對(duì)話框或控制臺(tái)。
語法:object.Echo [Arg1] [,Arg2] [,Arg3] ...
參數(shù):object必選項(xiàng)。WScript 對(duì)象。
Arg1, Arg2, Arg3 ...所顯示的項(xiàng)的列表。
說明:如果宿主為 WScript.exe,本方法將把輸出顯示在對(duì)話框中;如果宿主為 CScript.exe,結(jié)果將顯示在控制臺(tái)上。每一項(xiàng)將被一個(gè)空格隔開。 在 CScript.exe 下,輸出的末尾被加上換行符。如果未提供任何項(xiàng),顯示的將是空行。
例子:
Set fso = CreateObject("scripting.filesystemobject")
Set f = fso.OpenTextFile("c:\test.txt")
wscript.echo f.ReadAll
將會(huì)顯示這個(gè)文件里面的所有內(nèi)容。這么看來,他的功能跟msgbox一樣,不過不如他強(qiáng)大。
7、ConnectObject 方法
描述:將一個(gè)對(duì)象事件源連接到具有給定前綴的函數(shù)。
語法:object.ConnectObject strObject, strPrefix
參數(shù):object必選項(xiàng)。WScript 對(duì)象。
strObject要連接的對(duì)象的名稱。
strPrefix事件函數(shù)的前綴。
說明:
對(duì)象必須能夠枚舉自己類的事件集合。
例子:下例實(shí)例化了一個(gè)假想的對(duì)象,并將其連接到腳本文件。然后腳本調(diào)用該對(duì)象的 "SomeMethod" 方法。如果對(duì)象中發(fā)生了名為 "Event"的事件,將調(diào)用 MyEvent_Event 子例程。
Set MyObject = WScript.CreateObject("SomeObject")
MyObject.SomeMethod
WScript.ConnectObject MyObject, "MyEvent"
Sub MyEvent_Event(strName)
WScript.Echo strName
End Sub
WScript.DisconnectObject MyObject
8、DisconnectObject 方法
描述:將原先與 Windows 腳本宿主連接的對(duì)象斷開。
語法:object.DisconnectObject obj
參數(shù):object必選項(xiàng)。WScript 對(duì)象。
obj要斷開連接的對(duì)象的名稱。
說明:
如果所指定的對(duì)象尚未被連接到 Windows 腳本宿主,則此方法不起任何作用。
例子:
下例創(chuàng)建了一個(gè)假想的對(duì)象并將其連接到腳本文件。然后腳本調(diào)用對(duì)象的 "SomeMethod" 方法。如果對(duì)象中發(fā)生名為 "Event" 的錯(cuò)誤,MyEvent_Event 子例程將被調(diào)用。
Set MyObject = WScript.CreateObject("SomeObject", "MyEvent")
MyObject.SomeMethod
Sub MyEvent_Event(strName)
WScript.Echo strName
End Sub
WScript.DisconnectObject MyObject
這篇文章就介紹到這了,需要的朋友可以參考一下。