在VBScript中覆盖CreateObject函数

时间:2008-10-23 21:39:47

标签: vbscript createobject

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

基本上这个例子在VB6中:

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

我无法弄清楚这一行:

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

如何在VBSript中引用“VBA”?

2 个答案:

答案 0 :(得分:4)

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

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

不保证! ; - )

答案 1 :(得分:0)

我认为你不能覆盖它,所以所有代码都会使用它,只使用你的代码。

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