不錯的一篇VBS-JSCRIPT GETOBJECT理解

來源:互聯網
上載者:User

2年前,當時自己在寫ASPSHELL的時候 一直不理解為什麼
GetObject("WinNT://.") 可以獲得本地系統 的一些重要訊息
當時MSDN是這樣一個解析的
-----------
Windows 指令碼宿主
GetObject 方法
請參閱
WScript 對象 | CreateObject 方法 | DisconnectObject 方法
用指定的 ProgID 檢索現有的對象或從檔案中建立新對象。
object.GetObject(strPathname [,strProgID], [strPrefix])
參數
object
WScript 對象。
strPathname
包含保留到磁碟中的對象的檔案的完全限定路徑名。
strProgID
可選。對象的程式標識符 (ProgID)。
strPrefix
可選。在要同步對象的事件時使用。如果您提供 strPrefix 參數,則 WSH 會在建立對象後將該對象的輸出介面串連到指令檔。
說明
如果對象的執行個體儲存在記憶體中,或者您要從檔案建立對象,則使用 GetObject 方法。如果記憶體中沒有當前的執行個體,並且您不希望從檔案建立對象,則請使用 CreateObject 方法。GetObject 方法可用於所有的 COM 類別,而與用於建立對象的語言無關。如果您提供 strPrefix 參數,則 WSH 會在建立對象後將該對象的輸出介面串連到指令檔。當對象引發事件時,WSH 將調用在事件名稱開頭附加 strPrefix 的子常式。例如,如果 strPrefix 是 MYOBJ_,對象引發的事件名為 OnBegin,則 WSH 呼叫指令碼中的 MYOBJ_OnBegin 子常式。
如果某個對象被註冊為單一實例對象,則只建立該對象的一個執行個體(無論您執行了多少次 GetObject,都是如此)。GetObject 方法返回的執行個體總是與用零長度字串文法 ("") 調用的執行個體相同,如果未提供路徑參數,則會發生錯誤。GetObject 方法不能用於獲得對用 Visual Basic 4.0 或更低版本建立的 Microsoft Visual Basic 類的引用。
樣本
下面的 VBScript 代碼啟動與指定的檔案 (strPathname) 相相關 App程式:
Dim MyObject As Object
Set MyObject = GetObject("C:\CAD\SCHEMA.CAD")
MyApp = MyObject.Application
某些應用程式允許您啟用檔案的一部分。為此,在檔案名稱的結尾處添加一個驚嘆號 (!),並在其後附加一個標識檔案中要啟用部分的字串。例如,在繪圖應用程式中,檔案中儲存的繪圖可能有多層。下面的代碼啟用名為 SCHEMA.CAD 的繪圖檔案中的某一層:
Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")
如果未指定對象的類 (strProgID),則 COM 確定要從該檔案名稱啟動的應用程式。某些檔案可支援多個對象類。例如,某個繪圖可能支援三個不同類型的對象:應用程式物件、繪圖對象和工具列對象。所有這些都可能在同一個檔案中。
在下面的 VBScript 代碼中,繪圖應用程式 FIGMENT 從 SAMPLE.DRW 檔案啟動,並開啟其中的 DRAWING 對象。
Dim MyObject As Object
Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")
請參閱
WScript 對象 | CreateObject 方法 | DisconnectObject 方法
---------------
但是看完之後還沒有理解~~
N年之後的今天~~ 突然看了一篇文章~~~終於理解了
其實 GetObject 就是 從一個檔案 或者 對象中取得資訊 取得其操作
例如
GetObject("WinNT://.") 這個就是系統對象了~
而假如你系統裝了OFFICE的 EXCEL 那我們就可以這樣獲得對象
Set xls = GetObject("d:\1.xls","Excel.Application") ' 第一參數是 xls的檔案路徑 第2個參數是對象的類型
也可以讓他自動識別
Set xls = GetObject("d:\1.xls")

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.