用指定的 ProgID 檢索現(xiàn)有的對象或從文件中創(chuàng)建新對象。
object.GetObject(strPathname [,strProgID], [strPrefix])
如果對象的實例存儲在內(nèi)存中,或者您要從文件創(chuàng)建對象,則使用 GetObject 方法。如果內(nèi)存中沒有當前的實例,并且您不希望從文件創(chuàng)建對象,則請使用 CreateObject 方法。GetObject 方法可用于所有的 COM 類,而與用于創(chuàng)建對象的語言無關(guān)。如果您提供 strPrefix 參數(shù),則 WSH 會在創(chuàng)建對象后將該對象的輸出接口連接到腳本文件。當對象引發(fā)事件時,WSH 將調(diào)用在事件名稱開頭附加 strPrefix 的子例程。例如,如果 strPrefix 是 MYOBJ_,
對象引發(fā)的事件名為 OnBegin
,則 WSH 調(diào)用腳本中的 MYOBJ_OnBegin
子例程。
如果某個對象被注冊為單實例對象,則只創(chuàng)建該對象的一個實例(無論您執(zhí)行了多少次 GetObject,都是如此)。GetObject 方法返回的實例總是與用零長度字符串語法 ("") 調(diào)用的實例相同,如果未提供路徑參數(shù),則會發(fā)生錯誤。GetObject 方法不能用于獲得對用 Visual Basic 4.0 或更低版本創(chuàng)建的 Microsoft Visual Basic 類的引用。
下面的 VBScript 代碼啟動與指定的文件 (strPathname) 相關(guān)聯(lián)的應(yīng)用程序:
Dim MyObject As Object Set MyObject =GetObject(
"C:\CAD\SCHEMA.CAD")
MyApp = MyObject.Application
某些應(yīng)用程序允許您激活文件的一部分。為此,在文件名的結(jié)尾處添加一個感嘆號 (!),并在其后附加一個標識文件中要激活部分的字符串。例如,在繪圖應(yīng)用程序中,文件中存儲的繪圖可能有多層。下面的代碼激活名為 SCHEMA.CAD
的繪圖文件中的某一層:
Set LayerObject =GetObject(
"C:\CAD\SCHEMA.CAD!Layer3")
如果未指定對象的類 (strProgID),則 COM 確定要從該文件名啟動的應(yīng)用程序。某些文件可支持多個對象類。例如,某個繪圖可能支持三個不同類型的對象:應(yīng)用程序?qū)ο、繪圖對象和工具欄對象。所有這些都可能在同一個文件中。
在下面的 VBScript 代碼中,繪圖應(yīng)用程序 FIGMENT
從 SAMPLE.DRW
文件啟動,并打開其中的 DRAWING
對象。
Dim MyObject As Object Set MyObject =GetObject(
"C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")