0

在 VB.net 中,我们可以使用以下行执行 VBScript 代码:

System.Diagnostics.Process.start("AbsolutePathofVBScriptfile")

但是如何从 VB.net 代码调用 vbscript 中存在的特定函数呢?我搜索了它,但无法弄清楚。我发现的一些东西是 IActiveScript、MSScript.ocx ......

4

1 回答 1

2

我不确定这是否可以完成,因为您在两个完全不同的域中操作。

您提供的那行代码与双击 vbscript 文件没有什么不同。

我几乎没有做过 vbscript 编程,但是这又如何... 创建另一个脚本文件(存根),它只在您的主库文件中调用一个函数(子例程)。然后,从 VB.net 应用程序调用存根。

库.vbs

Function LibraryFunction(oValue)
    Wscript.Echo "LibraryRoutine Running!"
End Sub

...

存根.vbs

' Essentially "Import" the library script
Const ForReading = 1

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("procedures.vbs", ForReading)
Execute objFile.ReadAll()

' Call the appropriate function from library
LibraryFunction(4)

VB.net

System.Diagnostics.Process.start("stub.vbs")

函数、子例程以及如何从其他脚本调用它们

于 2012-06-09T07:11:19.100 回答