从执行的C#应用​​程序访问VB脚本对象

时间:2011-07-29 15:54:00

标签: c# vbscript

VBScript加载到另一个应用程序中,加载/执行VBScript的应用程序正在创建一个对象,因此可以从加载VBScript的应用程序中获取和设置变量。

在加载的VBScript中,我正在使用以下命令读取变量:

ApplicationName.GetStringVariable("string1")

我正在使用以下commnand从VBScript执行我的C#应用​​程序:

Set WshShell = CreateObject("WScript.Shell")
Return = WshShell.Run("c:\TestAppDelete.exe", 1, true)

我使用bWaitOnReturn,以便在我的其他C#应用程序运行时VBScript正在运行。但我找不到从C#应用程序访问此VBScript对象的方法。它告诉我对象不存在。这是我的C#代码:

我正在使用以下代码尝试访问VBScript对象从VBScript执行exe:

MSScriptControl.ScriptControlClass sc = new MSScriptControl.ScriptControlClass();
sc.Language = "VBScript";
sc.AddCode("MsgBox ApplicationName.GetStringVariable(\"string1\")");

我做错了什么?

1 个答案:

答案 0 :(得分:1)

当您运行TestAppDelete.exe时,您将创建一个全新的流程。创建ScriptControlClass时,您将在新的新流程中创建一个全新的脚本编写环境。当您向使用ApplicationName的脚本添加代码时,该对象不存在,因此失败。

而不是创建C#.exe而是考虑创建一个COM兼容的C#.dll。