Переопределение функции CreateObject в VBScript - PullRequest
0 голосов
/ 24 октября 2008

Я хочу переопределить функцию CreateObject () по умолчанию в VBScript своей собственной.

В основном этот пример в VB6:

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

Я не могу понять, это строка:

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

Как мне обратиться к "VBA" в VBSript?

Ответы [ 2 ]

4 голосов
/ 24 октября 2008

Кажется, этот быстрый тест работает ...

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

Никаких гарантий! ; -)

0 голосов
/ 24 октября 2008

Я не думаю, что вы можете переопределить его, так что весь код будет использовать его, только ваш код.

В этом случае не имеет значения, как он называется (если у вас нет тонны существующего кода, который вы не можете изменить). Можете ли вы назвать это CreateObjectEx () или ExCreateObject () или что-то в этом роде? Пусть эта функция добавит всю вашу обработку ошибок и тому подобное, а затем развернется и вызовет основной / основной метод CreateObject ()

...