从VB.net我们可以使用以下行执行VBScript代码:
System.Diagnostics.Process.start("AbsolutePathofVBScriptfile")
但是如何从VB.net代码调用vbscript中存在的特定函数? 我搜索了那个,但无法弄明白。我找到的一些东西是IActiveScript,MSScript.ocx ......
答案 0 :(得分:2)
我不确定这是否可以完成,因为您在两个完全不同的域中运作。
您提供的那行代码与双击vbscript文件没什么不同。
我接下来没有做过vbscript编程,但是这个怎么样...创建另一个脚本文件(存根),除了在main,library文件中调用一个函数(子例程)之外什么都不做。然后,从VB.net应用程序调用存根。
<强> library.vbs 强>
Function LibraryFunction(oValue)
Wscript.Echo "LibraryRoutine Running!"
End Sub
...
<强> stub.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")
Functions, Subroutines, and How to Call Them From Other Scripts