GetObject([pathname] [, class])
pathname
可選項。 完整的文件路徑和名稱,文件中包含了要檢索的對象。 假如忽略了 pathname ,那麼需要 class 。
class
可選項。 對象的類。
類參數采用的語法是 appname.objectype ,包括了以下部分:
appname
必選項。 提供對象的應用程序名稱。
objectype
必選項。 要創建的對象的類的類型。
使用 GetObject 函數可以從文件中訪問一個 Automation 對象。 可以將由 GetObject 返回的對象賦值給對象變量。 例如:
var CADObject;
CADObject = GetObject("C:CADSCHEMA.CAD");
在執行這段代碼時,將啟動與指定的 pathname 相關的應用程序,所指定文件中的對象將被激活。 假如 pathname 是長度為零的字符串 ("") ,那麼 GetObject 將返回指定類型的一個新實例。 假如忽略了 pathname 參數,那麼 GetObject 將返回指定類型的當前活動實例。 假如不存在指定類型的對象,那麼將出錯。
一些應用程序答應激活文件的一部分。要實現此功能,可以在文件名的尾部添加一個感歎號 (!) ,然後在感歎號後跟上一個字符串來指定要激活的文件部分。關於如何創建這個字符串的具體信息,請參閱創建該對象的應用程序的文檔。
例如,在一個繪畫應用程序中,可能在文件中存儲了繪畫的很多層次。 可以使用下面的代碼激活名為 SCHEMA.CAD 的圖畫中的一層。
var LayerObject = GetObject("C:CADSCHEMA.CAD!Layer3");
假如沒有指定對象的類, Automation 將根據所提供的文件名來決定要啟動的應用程序和要激活的對象。 但是,一些文件可能支持不止一種對象的類。 例如,一個圖畫可能支持三種不同的對象類型:應用程序對象、繪畫對象,以及工具欄對象,所有這些都是同一個文件中的部分。 要指定文件中希望激活的對象,可以使用可選的 class 參數。 例如:
var MyObject;
MyObject = GetObject("C:DRAWINGSSAMPLE.DRW", "FIGMENT.DRAWING");
在前面的例子中,FIGMENT 是繪畫應用程序的名稱,而 DRAWING 是它支持的一種對象類型。 對象被激活後,可以使用定義的對象變量來引用它。 在前面的例子中,可以通過對象變量 MyObject 來訪問新對象的屬性和方法。 例如:
MyObject.Line(9, 90);
MyObject.InsertText(9, 100, "Hello, world.");
MyObject.SaveAs("C:DRAWINGSSAMPLE.DRW");
注重 假如當前已經有了對象的實例,或者想要由已經加載了的文件創建對象,那麼可以使用 GetObject 函數。 假如沒有當前的實例,而且也不想由已經加載的文件來啟動對象,那麼可以使用 ActiveXObject 對象。
假如對象自身已經注冊為單實例對象了,那麼無論執行多少次 ActiveXObject 也只會創建對象的一個實例。 對於單實例對象, GetObject 在用長度為零的字符串 ("") 語法調用時總是返回相同的實例,而假如忽略了 pathname 參數就會出錯。