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\")");
我做错了什么?
答案 0 :(得分:1)
当您运行TestAppDelete.exe
时,您将创建一个全新的流程。创建ScriptControlClass
时,您将在新的新流程中创建一个全新的脚本编写环境。当您向使用ApplicationName
的脚本添加代码时,该对象不存在,因此失败。
而不是创建C#.exe而是考虑创建一个COM兼容的C#.dll。