在 VB.net 中,我们可以使用以下行执行 VBScript 代码:
System.Diagnostics.Process.start("AbsolutePathofVBScriptfile")
但是如何从 VB.net 代码调用 vbscript 中存在的特定函数呢?我搜索了它,但无法弄清楚。我发现的一些东西是 IActiveScript、MSScript.ocx ......
我不确定这是否可以完成,因为您在两个完全不同的域中操作。
您提供的那行代码与双击 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")