在没有COM的情况下从VBScript调用.NET应用程序。可能?

时间:2012-09-21 07:00:39

标签: c# .net vba com vbscript

我有一个第三方应用程序,我可以通过VBScript编写脚本。现在我想从它调用一个正在运行的.NET应用程序。如果我想用COM做这个,我必须使用ExeComServer。有一个问题是我的工作流程无法做到这一点。由于强名,COM +服务器也是不可能的。

我不得不将一个对象从VBScript转发到.NET。

2 个答案:

答案 0 :(得分:1)

如果COM对你来说是不可能的,你可以尝试使用VBScript中的套接字,但是你会遇到各种各样的问题。你可以购买一些基于COM的第三方套接字库,但我从来没有使用过,所以我不推荐任何一个。您的.NET应用程序也必须进行大量修改才能收听端口并与脚本进行通信 - 这将是一些工作。

我能想到的另一个可能的选择是在.NET中创建一个支持COM的.dll,它为您实现套接字逻辑并与.NET应用程序进行通信。然后,您可以从VBScript创建此对象的实例,并通过COM与其进行通信。然后,您的.dll将使用套接字与.NET .exe进行通信。这为套接字的两端提供了2个.NET对象 - 在.NET中实现它更容易。您仍然需要更改主.exe以收听套接字。

这有点复杂,因为VBScript旨在使用COM - 您不使用COM的要求是您可以做的限制因素。 (即使我的想法也会涉及COM对象,但至少它会删除EXE COM服务器的要求。)可能有更简单的选项 - 这只是我的头脑。

答案 1 :(得分:0)

调用正在运行的.NET应用程序的一种方法是从.NET应用程序公开WCF服务。 VBScript可以调用Web服务,例如使用XMLHTTP对象。

另一方面,你也说过:

  

我不得不将一个对象从VBScript转发到.NET。

如果你的意思是编组一个COM对象,我认为除了使用COM之外你别无选择。

相关问题