關於 VBScript 中的 CreateObject

本文主要記錄,VBS中,CreateObject 和 WScript.CreateObject 的不一樣。html


CreateObject 是什麼:

他是一個 VBScript 的內置函數(Function),或者說是一個方法(Method),取決這個單詞被用在了什麼地方。

服務器

CreateObject 的做用:

微軟官方文檔說,它的做用是:Creates an Automation object of the specified class。翻譯過來就是,用於建立一個指定類型的,自動化對象。而,An object is an instance of a class,因此,能夠進一步解釋爲,它的做用是,建立一個指定 Class 的 Instance (實例)。不以爲,這個內置函數的做用,很像是 Python 裏的 import xxx as y 麼!

函數

爲何要使用 CreateObject 函數:

VBScript 的運行環境中,自帶的 Object 只有14個,或者說 Windows Scripting Host (WSH) 環境中,自帶的 Object 只有14 個。所以能解決的問題比較有限,因此,VBScript 總會遇到,靠自帶 Object 解決不了的問題。這時,爲了解決問題(自動化),VBScript 就須要調用(借用)其餘 「外部的Object」 或者 「程序」。那麼,如何調用呢?答案就是,使用 CreateObject 函數!一個很好的例子就是,CreateObject("Excel.Application")。這個例子是,VBScript 在調用外部的 Excel 對象,來自動化 Excel 操做!要是不太理解WSH,能夠去看我另外一篇文章:Windows Scripting Host (WSH) 是什麼?

翻譯

CreateObject 和 WScript.CreateObject 有什麼不一樣:

細心的同窗,或發現,在使用 CreateObject 函數的過程當中,會在代碼中,看到兩種不一樣的狀況:code

  • CreateObject (直接使用函數)
  • WScript.CreateObject (做爲 Wscript 的 Method 來使用)

那麼這兩種,使用方法,區別是什麼呢?區別以下:server

  1. CreateObject 是 VBScript 的內置函數,屬於語言的一部分;而 WScript.CreateObject 是 WSH 中 WScript 對象的 Method;在 VBS 語言中,CreateObject 老是可用的,而 WScript.CreateObject 只有在宿主爲 wscript.exe 和 cscript.exe 的狀況下才可使;在 WMI、QTP、SecureCRT、EmEditor 等,其餘宿主環境是沒法使用的。htm

  2. 這兩種函數,所使用的參數的,含義不一樣;它倆的第一個參數,含義是相同的,可是它倆的第二個參數,含義就徹底不一樣了;CreateObject 的第二個參數用來經過 DCOM 在遠程服務器上建立對象;而 WScript.CreateObject 的第二個參數用來建立本地對象並響應事件。對象

  3. 這兩種函數的速度不同;由於 CreateObject 是 VBS 的內置函數,不須要經過COM來調用,因此稍微快了一點點。blog

  4. 建議,儘可能使用 CreateObject 函數,除非你須要響應事件;由於這樣 可移植性更好、速度更快、代碼更短。

    事件

參考閱讀:

  1. CreateObject Method | Microsoft Docs
  2. Instance (computer science) - Wikipedia
  3. VBScript CreateObject Function
  4. VBS調用Windows對象中server.CreateObject和wscript.creatobject的區別_百度知道
  5. VBS中CreateObject和WScript.CreateObject的區別
相關文章
相關標籤/搜索