?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
JScript? | 語言參考 |
從文件中返回對 Automation 對象 的一個引用。
GetObject([pathname] [, class])
pathname
可選項。 完整的文件路徑和名稱,文件中包含了要檢索的對象。 如果忽略了 pathname ,那么需要 class 。
class
可選項。 對象的類。
類參數(shù)采用的語法是 appname.objectype ,包括了以下部分:
appname
必選項。 提供對象的應(yīng)用程序名稱。
objectype
必選項。 要創(chuàng)建的對象的類的類型。
使用 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)用程序中,可能在文件中存儲了繪畫的很多層次。 可以使用下面的代碼激活名為 SCHEMA.CAD 的圖畫中的一層。
var LayerObject = GetObject("C:\\CAD\\SCHEMA.CAD!Layer3");
如果沒有指定對象的類, Automation 將根據(jù)所提供的文件名來決定要啟動的應(yīng)用程序和要激活的對象。 但是,一些文件可能支持不止一種對象的類。 例如,一個圖畫可能支持三種不同的對象類型:應(yīng)用程序?qū)ο?、繪畫對象,以及工具欄對象,所有這些都是同一個文件中的部分。 要指定文件中希望激活的對象,可以使用可選的 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ù)就會出錯。
版本 5
ActiveXObject 對象