在Windows中,我目前有两个程序如下。程序A使用一些参数调用程序B,这会导致程序B返回一些文本然后退出。程序A再次使用其他参数调用程序B,这会导致程序B执行更多操作。
当程序B启动时,需要花费一些时间来加载。上述方法意味着程序B必须进行两次加载。是否可以只加载程序B一次?
e.g。程序A使用一些参数调用程序B,这会导致程序B返回一些文本,但程序继续运行。程序A再次调用相同的进程,这导致程序B做更多的事情。
以上是否可能,也许使用某种Windows信息?程序A是一个Delphi应用程序,使用Windows的CreateProcess方法。程序B是一个.NET应用程序,根据传入的参数执行各种操作。我知道我们可以通过将程序B安装为Windows服务来实现,但我想尽可能避免这种情况。
答案 0 :(得分:0)
以下是进程间通信的技术。 .NET有WCF / webservices等来做到这一点。可以使用可执行文件(甚至是控制台应用程序)或作为Windows服务来托管服务。您也可以选择Web服务器(IIS)。
由于您的程序B在.NET中,您可以将其作为服务托管并在Delphi应用程序中使用它。我不知道出于什么目的,你希望避免它成为一项服务。但这肯定会让你占上风,实施起来相当简单。
即使您正在使用C / C ++等,您也可以考虑使用像gSOAP这样的包装器将程序B作为Web服务提供。
答案 1 :(得分:0)
我们最终创建了一个具有不可见形式的程序B,因此它不断运行。只要需要完成工作,程序A就会向程序B发送Windows消息。当程序A退出时,它向程序B发送“退出”消息,程序B看到该消息并退出。