從文件中返回對 Automation 對象的一個引用。
GetObject([pathname] [, class])
類參數(shù)采用的語法是 appname.objectype ,包括了以下部分:
使用 GetObject 函數(shù)可以從文件中訪問一個 Automation 對象。可以將由 GetObject 返回的對象賦值給對象變量。例如:
var CADObject; CADObject =GetObject(
"C:\\CAD\\SCHEMA.CAD")
;
在執(zhí)行這段代碼時,將啟動與指定的 pathname 相關(guān)的應(yīng)用程序,所指定文件中的對象將被激活。如果 pathname 是長度為零的字符串 ("") ,那么 GetObject 將返回指定類型的一個新實例。如果忽略了 pathname 參數(shù),那么 GetObject 將返回指定類型的當(dāng)前活動實例。如果不存在指定類型的對象,那么將出錯。
一些應(yīng)用程序允許激活文件的一部分。要實現(xiàn)此功能,可以在文件名的尾部添加一個感嘆號 (!) ,然后在感嘆號后跟上一個字符串來指定要激活的文件部分。關(guān)于如何創(chuàng)建這個字符串的詳細(xì)信息,請參閱創(chuàng)建該對象的應(yīng)用程序的文檔。
例如,在一個繪畫應(yīng)用程序中,可能在文件中存儲了繪畫的很多層次�?梢允褂孟旅娴拇a激活名為 SCHEMA.CAD 的圖畫中的一層。
var LayerObject =GetObject(
"C:\\CAD\\SCHEMA.
CAD!Layer3")
;
如果沒有指定對象的類, Automation 將根據(jù)所提供的文件名來決定要啟動的應(yīng)用程序和要激活的對象。但是,一些文件可能支持不止一種對象的類。例如,一個圖畫可能支持三種不同的對象類型:應(yīng)用程序?qū)ο蟆⒗L畫對象,以及工具欄對象,所有這些都是同一個文件中的部分。要指定文件中希望激活的對象,可以使用可選的 class 參數(shù)。例如:
var MyObject; MyObject =GetObject(
"C:\\DRAWINGS\\SAMPLE.DRW", "FIGMENT.DRAWING")
;
在前面的例子中,F(xiàn)IGMENT 是繪畫應(yīng)用程序的名稱,而 DRAWING 是它支持的一種對象類型。對象被激活后,可以使用定義的對象變量來引用它。在前面的例子中,可以通過對象變量 MyObject 來訪問新對象的屬性和方法。例如:
MyObject.Line(9, 90); MyObject.InsertText(9, 100, "Hello, world."); MyObject.SaveAs("C:\\DRAWINGS\\SAMPLE.DRW");
注意 如果當(dāng)前已經(jīng)有了對象的實例,或者想要由已經(jīng)加載了的文件創(chuàng)建對象,那么可以使用 GetObject 函數(shù)。如果沒有當(dāng)前的實例,而且也不想由已經(jīng)加載的文件來啟動對象,那么可以使用 ActiveXObject 對象。
如果對象自身已經(jīng)注冊為單實例對象了,那么無論執(zhí)行多少次 ActiveXObject 也只會創(chuàng)建對象的一個實例。對于單實例對象, GetObject 在用長度為零的字符串 ("") 語法調(diào)用時總是返回相同的實例,而如果忽略了 pathname 參數(shù)就會出錯。