【问题标题】:What is the difference between CreateObject and Wscript.CreateObject?CreateObject 和 Wscript.CreateObject 有什么区别?
【发布时间】:2010-10-21 16:53:10
【问题描述】:

有谁知道选择使用的原因:

Wscript.CreateObject("some.object")

CreateObject("some.object")

在 VBScript 中?当我找到使用Wscript.CreateObject 的文档或示例时,我通常使用CreateObject 重写,因为它似乎总是有效,然后我可以轻松地在 HTA 或 ASP 中重用代码。但我一直想知道为什么会存在这个功能,以及如果您在 VBScript 中使用一种或另一种方式会产生什么不同。

【问题讨论】:

    标签: windows vbscript wsh


    【解决方案1】:

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

    仅当您使用两个参数调用时,两者之间的区别才会显现出来。声明

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

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

    做完全不同的事情:

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

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

    【讨论】:

    • @thomas-petersen 很抱歉打扰您,但在您的引文末尾写着The two GetObject functions are,而其余的文字涉及CreateObject
    【解决方案2】:

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

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

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

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

    编辑有区别(但仅当您尝试在远程主机上实例化 DCOM 对象时),请参阅@Thomas Petersen 的答案。 p>

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-25
        • 1970-01-01
        • 2010-09-15
        • 2010-10-02
        • 2011-12-12
        • 2010-09-16
        • 2012-03-14
        • 2012-02-06
        相关资源
        最近更新 更多