【问题标题】:Overriding CreateObject Function in VBScript在 VBScript 中重写 CreateObject 函数
【发布时间】:2008-10-23 21:39:47
【问题描述】:

我想用我自己的覆盖 VBScript 中的默认 CreateObject() 函数。

基本上这个例子在VB6中:

http://www.darinhiggins.com/the-vb6-createobject-function/

我不知道是这条线:

 Set CreateObject = VBA.CreateObject(Class$, ServerName$)

如何在 VBSript 中引用“VBA”?

【问题讨论】:

  • 我看到您是该网站的新手,因此我冒昧地建议将我的解决方案标记为已接受,如果它适合您的话。 :-)
  • 链接失效。你有更新的吗?

标签: vbscript createobject


【解决方案1】:

这个快速测试似乎有效...

Function CreateObject(className, serverName)
   '---- override the CreateObject
   '     function in order to register what
   '     object is being created in any error message
   '     that's generated
   Dim source, descr, errNum

   WScript.echo "In custom CreateObject"
   If Len(serverName) > 0 Then
      Set CreateObject = WScript.CreateObject(className, serverName)
   Else
      Set CreateObject = WScript.CreateObject(className)
   End If

End Function

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject", "")
path = fso.GetAbsolutePathName(".")

WScript.echo path

不保证! ;-)

【讨论】:

    【解决方案2】:

    我不认为您可以覆盖它,以便所有代码都使用它,只有您的代码。

    在这种情况下,它的名称并不重要(除非您有大量无法更改的现有代码)。你可以称它为 CreateObjectEx() 或 ExCreateObject() 或类似的东西吗?让这个函数添加你所有的错误处理等等,然后转身调用主/核心 CreateObject() 方法

    【讨论】:

      猜你喜欢
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 2012-12-22
      • 1970-01-01
      • 2014-11-16
      • 1970-01-01
      • 2018-12-09
      相关资源
      最近更新 更多