首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CreateObject和Wscript.CreateObject有什么区别?

CreateObject和Wscript.CreateObject有什么区别?
EN

Stack Overflow用户
提问于 2009-04-24 20:06:46
回答 3查看 37.6K关注 0票数 16

有没有人知道使用以下选项背后的原因:

代码语言:javascript
复制
Wscript.CreateObject("some.object")

代码语言:javascript
复制
CreateObject("some.object")

在VBScript中?当我找到使用Wscript.CreateObject的文档或示例时,我通常使用CreateObject重写,因为它似乎总是有效的,这样我就可以很容易地在HTA或ASP中重用代码。但我一直在想,为什么会有这个功能,如果你在VBScript中以这样或那样的方式使用,会有什么不同。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-04-24 20:17:56

当你只用一个参数调用它们时,两者之间没有区别。它们做的是完全一样的事情。

只有在使用两个参数调用时,这两个参数之间的差异才会明显。这些语句

代码语言:javascript
复制
Wscript.CreateObject("some.object", "AnotherParam")

代码语言:javascript
复制
CreateObject("some.object", "AnotherParam")

做完全不同的事情:

VBScript CreateObject函数将第二个参数解释为远程计算机名,并尝试在该远程计算机上创建命名的COM对象;在此示例中,它尝试在名为"AnotherParam“的远程计算机上实例化ProgId为"some.object”的对象的实例。WScript CreateObject方法将第二个参数解释为用于处理来自对象的事件的子例程前缀。这两个GetObject函数具有类似的关系。

(改编自TechNet的“比较VBScript CreateObject和GetObject函数与WSH”一节。)

票数 28
EN

Stack Overflow用户

发布于 2009-04-24 20:11:40

我猜WScript对象有CreateObject方法,所以任何Windows Script语言都可以创建COM对象。

作为一个全局函数,VBScript具有这种能力,但其他Windows Script宿主语言可能没有。

例如,JScript没有全局CreateObject函数(我相信)(但是,它有var a = new ActiveXObject("...")语法,所以您也不需要在JScript中使用WScript.CreateObject )。

我猜这两个函数之间没有区别。

DCOM EDIT:这是有区别的(但仅当您试图在远程主机上实例化对象时),请参阅@Thomas Petersen给出的答案。

票数 6
EN

Stack Overflow用户

发布于 2011-03-09 08:13:47

JScript没有全局CreateObject吗?WScript不能使用JScript吗?

Code from devGuru

代码语言:javascript
复制
// JScript
var objIE = WScript.CreateObject("InternetExplorer.Application","objIE_")
objIE.Visible = true

while (objIE.Visible){
    WScript.Sleep(500);
}

function objIE_NavigateComplete2(pDisp, URL){
    WScript.Echo("You just navigated to", URL)
} 

function objIE_OnQuit(){
    boolBrowserRunning = false ;
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/787369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档