2年前,當(dāng)時(shí)自己在寫ASPSHELL的時(shí)候 一直不理解為什么
GetObject("WinNT://.") 可以獲得本地系統(tǒng) 的一些重要信息
當(dāng)時(shí)MSDN是這樣一個(gè)解析的
-----------
Windows 腳本宿主
GetObject 方法
請(qǐng)參閱
WScript 對(duì)象 | CreateObject 方法 | DisconnectObject 方法
用指定的 ProgID 檢索現(xiàn)有的對(duì)象或從文件中創(chuàng)建新對(duì)象。
object.GetObject(strPathname [,strProgID], [strPrefix])
參數(shù)
object
WScript 對(duì)象。
strPathname
包含保留到磁盤中的對(duì)象的文件的完全限定路徑名。
strProgID
可選。對(duì)象的程序標(biāo)識(shí)符 (ProgID)。
strPrefix
可選。在要同步對(duì)象的事件時(shí)使用。如果您提供 strPrefix 參數(shù),則 WSH 會(huì)在創(chuàng)建對(duì)象后將該對(duì)象的輸出接口連接到腳本文件。
說明
如果對(duì)象的實(shí)例存儲(chǔ)在內(nèi)存中,或者您要從文件創(chuàng)建對(duì)象,則使用 GetObject 方法。如果內(nèi)存中沒有當(dāng)前的實(shí)例,并且您不希望從文件創(chuàng)建對(duì)象,則請(qǐng)使用 CreateObject 方法。GetObject 方法可用于所有的 COM 類,而與用于創(chuàng)建對(duì)象的語言無關(guān)。如果您提供 strPrefix 參數(shù),則 WSH 會(huì)在創(chuàng)建對(duì)象后將該對(duì)象的輸出接口連接到腳本文件。當(dāng)對(duì)象引發(fā)事件時(shí),WSH 將調(diào)用在事件名稱開頭附加 strPrefix 的子例程。例如,如果 strPrefix 是 MYOBJ_,對(duì)象引發(fā)的事件名為 OnBegin,則 WSH 調(diào)用腳本中的 MYOBJ_OnBegin 子例程。
如果某個(gè)對(duì)象被注冊(cè)為單實(shí)例對(duì)象,則只創(chuàng)建該對(duì)象的一個(gè)實(shí)例(無論您執(zhí)行了多少次 GetObject,都是如此)。GetObject 方法返回的實(shí)例總是與用零長度字符串語法 ("") 調(diào)用的實(shí)例相同,如果未提供路徑參數(shù),則會(huì)發(fā)生錯(cuò)誤。GetObject 方法不能用于獲得對(duì)用 Visual Basic 4.0 或更低版本創(chuàng)建的 Microsoft Visual Basic 類的引用。
示例
下面的 VBScript 代碼啟動(dòng)與指定的文件 (strPathname) 相關(guān)聯(lián)的應(yīng)用程序:
Dim MyObject As Object
Set MyObject = GetObject("C:\CAD\SCHEMA.CAD")
MyApp = MyObject.Application
某些應(yīng)用程序允許您激活文件的一部分。為此,在文件名的結(jié)尾處添加一個(gè)感嘆號(hào) (!),并在其后附加一個(gè)標(biāo)識(shí)文件中要激活部分的字符串。例如,在繪圖應(yīng)用程序中,文件中存儲(chǔ)的繪圖可能有多層。下面的代碼激活名為 SCHEMA.CAD 的繪圖文件中的某一層:
Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")
如果未指定對(duì)象的類 (strProgID),則 COM 確定要從該文件名啟動(dòng)的應(yīng)用程序。某些文件可支持多個(gè)對(duì)象類。例如,某個(gè)繪圖可能支持三個(gè)不同類型的對(duì)象:應(yīng)用程序?qū)ο蟆⒗L圖對(duì)象和工具欄對(duì)象。所有這些都可能在同一個(gè)文件中。
在下面的 VBScript 代碼中,繪圖應(yīng)用程序 FIGMENT 從 SAMPLE.DRW 文件啟動(dòng),并打開其中的 DRAWING 對(duì)象。
Dim MyObject As Object
Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")
請(qǐng)參閱
WScript 對(duì)象 | CreateObject 方法 | DisconnectObject 方法
---------------
但是看完之后還沒有理解~~
N年之后的今天~~ 突然看了一篇文章~~~終于理解了
其實(shí) GetObject 就是 從一個(gè)文件 或者 對(duì)象中取得信息 取得其操作
例如
GetObject("WinNT://.") 這個(gè)就是系統(tǒng)對(duì)象了~
而假如你系統(tǒng)裝了OFFICE的 EXCEL 那我們就可以這樣獲得對(duì)象
Set xls = GetObject("d:\1.xls","Excel.Application") ' 第一參數(shù)是 xls的文件路徑 第2個(gè)參數(shù)是對(duì)象的類型
也可以讓他自動(dòng)識(shí)別
Set xls = GetObject("d:\1.xls")
不錯(cuò)的一篇VBS-JSCRIPT GETOBJECT理解
2020-07-10 18:02腳本之家 VBS
2年前,當(dāng)時(shí)自己在寫ASPSHELL的時(shí)候 一直不理解為什么,GetObject("WinNT://.") 可以獲得本地系統(tǒng) 的一些重要信息,當(dāng)時(shí)MSDN是這樣一個(gè)解析的
延伸 · 閱讀
- 2021-12-09禁用VBS提高Windows 11性能,這個(gè)技巧必須要掌握
- 2021-11-13使用VBS創(chuàng)建快捷方式的代碼
- 2021-11-13如何使用vbs 監(jiān)控電腦活動(dòng)記錄
- 2021-11-13如何用VBS腳本收集遠(yuǎn)程計(jì)算機(jī)或本地計(jì)算機(jī)安裝
- 2021-10-08Windows 11 VBS 安全功能導(dǎo)致性能下降,教你如何檢
- 2021-10-08怎樣在Windows 11中禁用VBS以提高性能?
- VBS
可以定時(shí)自動(dòng)關(guān)機(jī)的vbs腳本
這篇文章主要分享一段可以定時(shí)自動(dòng)關(guān)機(jī)的vbs腳本代碼,有需要的童鞋可以學(xué)習(xí)下...
- VBS
VBS教程:正則表達(dá)式簡介 -建立正則表達(dá)式
建立正則表達(dá)式 構(gòu)造正則表達(dá)式的方法和創(chuàng)建數(shù)學(xué)表達(dá)式的方法一樣。也就是用多種元字符與操作符將小的表達(dá)式結(jié)合在一起來創(chuàng)建更大的表達(dá)式。 可以...
- VBS
VBS教程:屬性-AvailableSpace 屬性
VBS教程:屬性-AvailableSpace 屬性 ...
- VBS
VBS教程:對(duì)象-Folders 集合
VBS教程:對(duì)象-Folders 集合...
- VBS
vbs base64 解密腳本代碼
解密base64的vbs小函數(shù),支持英文與數(shù)字不支持中文。...
- VBS
VBS教程:屬性-VolumeName 屬性
VBS教程:屬性-VolumeName 屬性...
- VBS
提供個(gè)可以顯示農(nóng)歷的VBS代碼
本文主要分享一段可以顯示農(nóng)歷的VBS代碼,具有一定的參考價(jià)值,有需要的朋友可以了解一下...
- VBS
腳本 MsAgent組件 微軟精靈 揪出系統(tǒng)自帶的寵物
你知道系統(tǒng)里有一個(gè)隱藏的寵物嗎? 將以下代碼保存為后綴為.vbs的文件,再雙擊運(yùn)行,看看出來什么?一個(gè)可愛的魔法老人!還會(huì)說話、移動(dòng)、吹喇叭…...