使用C#

时间:2018-11-22 17:48:20

标签: c# vba com ole

我有一些C#软件控制应用程序。可以通过VBA在本地调用该应用程序。该文档说它是作为OLE自动化服务器实现的。

当我的代码仍然是32位时,我曾经使用Interop.MSScriptcontrol并使用.ExecuteStatement()调用VBA命令。这是一个例子

MSScriptControl S = new MSScriptControl.ScriptControlClass();
S.Language = "VBScript";
S.ExecuteStatement("set obj = CreateObject(\"End_Application.Application\")");
S.ExecuteStatement("set Instance = obj.NewApp");

执行这4行将创建应用程序的新实例,并且比我将发送更多的S.ExecuteStatements()来控制应用程序。如果我希望应用程序返回值,则可以使用S.Eval方法。

现在我必须迁移到64位。我发现CodeFluent's ScriptEngine类。我正在使用Eval()方法,但应用程序未创建新实例。

能否请您指出ScriptEngine类的正确用法,或者如何直接通过C#调用对象以创建实例并将数据传递给实例,即复制S.ExecuteCommand()方法。

是否有消除脚本类并直接调用对象的方法?

预先感谢

0 个答案:

没有答案