代码之家  ›  专栏  ›  技术社区  ›  mrTomahawk

CreateObject和Wscript有什么区别。创建对象?

  •  18
  • mrTomahawk  · 技术社区  · 17 年前

    Wscript.CreateObject("some.object")
    

    CreateObject("some.object")
    

    在VBScript中?当我找到使用 Wscript.CreateObject ,我通常使用 CreateObject

    3 回复  |  直到 17 年前
        1
  •  23
  •   krlmlr    13 年前

    当你只用一个论点来称呼他们时,这两者之间没有区别。他们做完全相同的事情。

    Wscript.CreateObject("some.object", "AnotherParam")
    

    CreateObject("some.object", "AnotherParam")
    

    做完全不同的事情:

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

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

        2
  •  5
  •   codeape    17 年前

    我猜 WScript 对象具有 CreateObject 方法,因此任何Windows脚本语言都可以创建COM对象。

    VBScript具有全局功能,但其他Windows脚本宿主语言可能没有。

    例如,JScript没有全局 创建对象 功能(我相信)(然而,它确实有 var a = new ActiveXObject("...") 语法,因此您不需要使用 WScript.CreateObject

    我想这两个功能之间没有区别。

    编辑 如果您想在远程主机上实例化DCOM对象,请参阅@Thomas Petersen的答案。

        3
  •  4
  •   mplungjan    12 年前

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

    Code from devGuru

    // 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 ;
    }