GetObject 函數
返回對檔案中 Automation 對象的引用。
GetObject([pathname] [, class])
參數
Pathname
可選項。字串,包含待檢索對象的檔案的完整路徑和名稱。如果省略 pathname 則必須有 class。
Class
可選項。字串,對象的類。
class 參數的文法格式為 appname.objectype,其中包括以下部分:
參數
appname
必選項。字串,提供對象的應用程式名稱。
objectype
必選項。字串,要建立的對象的類型或類。
說明
使用 GetObject 函數可以訪問檔案中的 Automation 對象,而且可以將該對象賦值給物件變數。使用 Set 語句將 GetObject 返回的對象賦值給物件變數。例如:
Dim CADObjectSet CADObject = GetObject("C:\CAD\SCHEMA.CAD")
在執行上述代碼時,就會啟動與指定路徑名相相關 App程式,同時啟用指定檔案中的對象。如果 pathname 是零長度字串 (""),GetObject 返回指定類型的新對象執行個體。如果省略 pathname 參數,GetObject 將返回指定類型的當前使用中的物件。如果沒有指定類型的對象,就會出現錯誤。
某些應用程式允許只啟用檔案的一部分,方法是在檔案名稱後加上一個驚歎號 (!) 以及用於標識要啟用的檔案部分的字串。有關建立這種字串的詳細資料,請參閱建立對象的應用程式的有關文檔。
例如,在繪圖應用程式中,一個存放在檔案中的圖可能有多層。可以使用下述代碼來啟用圖 SCHEMA.CAD 中的某一層:
Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")
如果沒有指定對象的類,則 Automation 會根據所提供的檔案名稱,確定要啟動的應用程式以及要啟用的對象。但是,有些檔案可能支援多個對象類。例如,圖可能支援三種不同類型的對象:Application 對象、Drawing 對象和 Toolbar 對象,所有這些都是同一個檔案中的一部分。使用可選項的 class 參數可以指定檔案中要啟用的對象。例如:
Dim MyObjectSet MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")
在上述範例中,FIGMENT 是繪圖應用程式的名稱,而 DRAWING 則是它支援的一種物件類型。對象被啟用之後,就可以在代碼中使用所定義的物件變數來引用它。在前面的例子中,可以使用物件變數 MyObject 訪問新對象的屬性和方法。例如:
MyObject.Line 9, 90MyObject.InsertText 9, 100, "嗨,你好!"MyObject.SaveAs "C:\DRAWINGS\SAMPLE.DRW"
注意 在對象的當前執行個體存在,或者要用已載入的檔案建立對象時,請使用 GetObject 函數。如果沒有當前執行個體,並且不準備使用已載入的檔案啟始物件,請使用 CreateObject 函數。
如果對象登入為單個執行個體的對象,則無論執行多少次 CreateObject,都只能建立該對象的一個執行個體。若使用單個執行個體對象,當使用零長度字串 ("") 文法調用時,GetObject 總是返回同一個執行個體,而如果省略 pathname 參數,則會出現錯誤。
複製代碼 代碼如下:
Set oDOM = WScript.GetObject(WScript.Arguments(0))
do until oDOM.readyState = "complete"
WScript.sleep 200
loop
WScript.echo oDOM.documentElement.outerHTML
或
複製代碼 代碼如下:
Set oDOM=WScript.GetObject("http://www.ip138.com/ip2city.asp")'就是取得這個對象
Do Until oDOM.readyState="complete" '一直迴圈等待200ms,直到頁面載入完成
WScript.sleep 200'就是等待200ms
Loop
WScript.echo oDOM.documentElement.outerText'取得某個文本,並彈出對話方塊以顯示此訊息
Set oDOM=nothing'斷開與對象的串連以釋放記憶體。
更多可以參考:
http://www.jb51.net/shouce/vbs/115.htm