打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBS中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 IESet IE = WScript.CreateObject("InternetExplorer.Application", "IE_")IE.Visible = TrueIE.Navigate "http://demon.tw"Do    WScript.Sleep 1000LoopSub IE_OnQuit()    MsgBox "正在关闭Demon's Blog"    WScript.QuitEnd Sub

CreateObject和WScript.CreateObject的区别三:

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

t = TimerFor i = 1 To 100000    Set WshShell = WScript.CreateObject("Wscript.Shell")NextWScript.Echo Timer - t'By Demon'http://demon.twt = TimerFor i = 1 To 100000    Set WshShell = CreateObject("Wscript.Shell")NextWScript.Echo Timer - t

Demon的建议:尽量使用CreateObject函数,除非你需要响应事件。这样至少有三个好处:可移植性更好、速度更快、代码更短。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
vbs读取网页
效率低下的Split函数,用VBS的人你伤不起
VBS读写文件及创建、删除文件
VBS中Run和Exec的区别 | Demon's Blog
VBS基础篇
windows脚本语言之vbs前置知识介绍
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服