0

VBScript のデフォルトの CreateObject() 関数を独自の関数でオーバーライドしたいと考えています。

基本的にVB6のこの例:

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

この行がわかりません:

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

VBSript で "VBA" を参照するにはどうすればよいですか?

4

2 に答える 2

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

保証はありません!;-)

于 2008-10-23T21:55:52.143 に答える
0

すべてのコードがそれを使用するようにオーバーライドできるとは思いません。あなたのコードだけです。

その場合、それが何と呼ばれるかは問題ではありません (変更できない既存のコードが大量にある場合を除きます)。CreateObjectEx() や ExCreateObject() などと呼ぶことはできますか? この関数にすべてのエラー処理などを追加させてから、向きを変えてメイン/コアの CreateObject() メソッドを呼び出します

于 2008-10-23T21:46:34.517 に答える