如何从VB.net代码中调用vbscript中的aspecific函数

时间:2012-06-09 07:02:44

标签: vb.net vbscript interop

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

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

但是如何从VB.net代码调用vbscript中存在的特定函数? 我搜索了那个,但无法弄明白。我找到的一些东西是IActiveScript,MSScript.ocx ......

1 个答案:

答案 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