欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

VBS中CreateObject和WScript.CreateObject的区别介绍

程序员文章站 2022-04-10 13:45:40
createobject和wscript.createobject的区别一: createobject是vbs的内置函数,属于语言的一部分;而wscript.createo...
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 "//www.jb51.net"
do
wscript.sleep 1000
loop

sub ie_onquit()
msgbox "正在关闭demon's blog"
wscript.quit
end sub


createobject和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
t = timer
for i = 1 to 100000
set wshshell = createobject("wscript.shell")
next
wscript.echo timer - t


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

作者: demon
链接: