是否可以利用不带COM的应用程序?

时间:2018-10-26 17:19:20

标签: c# vba shell com

我创建了一个.net应用程序,该应用程序托管在安全的共享点上。我希望能够通过VBA(或其他应用程序)运行此应用程序。

通过昨天的询问和研究,我发现通过Shell filePath, vbNormalFocus可以很容易地做到这一点-我什至可以将参数传递给应用程序,但是我真正想要的是将应用程序作为对象进行控制,类似于控制一个COM对象。经过研究和今天的困惑,我发现我不能使用COM,因为这不是类库-它是.exe应用程序(尽管我今天学到了很多东西!)

想象一下这种交易:

Dim x as Object
Set x = Shell "filePath", vbNormalFocus
    x.NotSureHowThisWorks

我想在我的Excel环境中启动该应用程序,并多次调用该应用程序,或从该应用程序中进行多次调用,以提供说明。调用可以是字符串,也可以是其他任何东西,但关键是我需要将正在运行的应用程序与VBA代码中的对象变量耦合,以便我可以重复调用并接收响应。

这可能吗?

1 个答案:

答案 0 :(得分:2)

由于该应用是您自己的,因此最简单的操作是将您的应用分为两个项目;一个DLL和一个EXE项目。让EXE项目引用DLL的所有功能,并使DLL成为COM可见的,然后仅从COM应用程序中引用该DLL。

如果打算将其作为共享进程,则将其作为服务而非.exe运行可能会更简单。

相关问题