教育改变生活,科泰成就梦想!
免费热线:400-696-8028

教学课堂CLASSROOM

开班信息
热门话题
.net技术
目前所在位置: 首页 > .net技术

VBS中CreateObject和WScript.CreateObject的区别

来源:北大青鸟科泰校区时间:2019-04-09

内容提要: 很多VBS新手都很困惑CreateObject和WScript.CreateObject有什么区别,为什么一些代码中用CreateObject,而另一些却用WScript.CreateObject?

很多VBS新手都很困惑CreateObject和WScript.CreateObject有什么区别,为什么一些代码中用CreateObject,而另一些却用WScript.CreateObject?

CreateObject和WScript.CreateObject的区别一:

CreateObject是VBS的内置函数,属于语言的一部分;而WScript.CreateObject是Windows脚本宿主(wscript.exe和cscript.exe)提供的WScript对象的方法。类似于批处理中内部命令和外部命令的关系。在VBS中,CreateObject总是可用的,而WScript.CreateObject只有在宿主为wscript.exe和cscript.exe的情况下才可以使用,在WMI、QTP、SecureCRT、EmEditor等其他宿主环境是无法使用的。

CreateObject和WScript.CreateObject的区别二:

如果只用第一个参数,那么CreateObject和WScript.CreateObject几乎是相同的;但是如果要用到第二个参数,那么两者就完全不同了。CreateObject的第二个参数用来通过DCOM在远程服务器上创建对象;而WScript.CreateObject的第二个参数用来创建本地对象并响应事件。

一个响应事件的简单例子:

Dim IE

Set IE = WScript.CreateObject("InternetExplorer.Application", "IE_")

IE.Visible = True

IE.Navigate http://www.111cn.net

Do

    WScript.Sleep 1000

Loop
Sub IE_OnQuit()

    MsgBox "正在关闭Demon’s Blog"

    WScript.Quit

End SubCreateObject和WScript.CreateObject的区别三:

因为CreateObject是VBS的内置函数,不需要通过COM来调用,所以CreateObject比WScript.CreateObject要稍微快一点点(虽然几乎可以忽略不计):

t = Timer

For i = 1 To 100000

    Set WshShell = WScript.CreateObject("Wscript.Shell")

Next

WScript.Echo Timer - t
’By Demon

’http://www.111cn.net
t = Timer

For i = 1 To 100000

    Set WshShell = CreateObject("Wscript.Shell")

Next

WScript.Echo Timer - tDemon的建议:尽量使用CreateObject函数,除非你需要响应事件。这样至少有三个好处:可移植性更好、速度更快、代码更短。
联系我们

扫码关注科泰

免费咨询:400-696-8028

报名电话:0731-88122069

咨询QQ: 783463085

学校地址:长沙市开福区湘江北路与开顺路交汇处(金霞跨境产贸城)

在线报名

长沙北大青鸟科泰IT梦想学院·长沙科泰电子商务有限公司·版权所有__湘ICP备19001789号-1