本文主要记录,VBS中,CreateObject 和 WScript.CreateObject 的不一样。html
他是一个 VBScript 的内置函数(Function),或者说是一个方法(Method),取决这个单词被用在了什么地方。
服务器
微软官方文档说,它的做用是:Creates an Automation object of the specified class。翻译过来就是,用于建立一个指定类型的,自动化对象。而,An object is an instance of a class,因此,能够进一步解释为,它的做用是,建立一个指定 Class 的 Instance (实例)。不以为,这个内置函数的做用,很像是 Python 里的 import xxx as y
么!
函数
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 函数的过程当中,会在代码中,看到两种不一样的状况:code
那么这两种,使用方法,区别是什么呢?区别以下:server
CreateObject 是 VBScript 的内置函数,属于语言的一部分;而 WScript.CreateObject 是 WSH 中 WScript 对象的 Method;在 VBS 语言中,CreateObject 老是可用的,而 WScript.CreateObject 只有在宿主为 wscript.exe 和 cscript.exe 的状况下才可使;在 WMI、QTP、SecureCRT、EmEditor 等,其余宿主环境是没法使用的。htm
这两种函数,所使用的参数的,含义不一样;它俩的第一个参数,含义是相同的,可是它俩的第二个参数,含义就彻底不一样了;CreateObject 的第二个参数用来经过 DCOM 在远程服务器上建立对象;而 WScript.CreateObject 的第二个参数用来建立本地对象并响应事件。对象
这两种函数的速度不同;由于 CreateObject 是 VBS 的内置函数,不须要经过COM来调用,因此稍微快了一点点。blog
建议,尽可能使用 CreateObject 函数,除非你须要响应事件;由于这样 可移植性更好、速度更快、代码更短。
事件