0

Windowsでは、現在2つのプログラムが次のように機能しています。プログラムAは、いくつかのパラメーターを使用してプログラムBを呼び出します。これにより、プログラムBはテキストを返し、終了します。プログラムAは、他のパラメーターを使用してプログラムBを再度呼び出します。これにより、プログラムBはより多くのことを実行します。

プログラムBが起動すると、時間のかかるロードを実行する必要があります。上記の方法は、プログラムBがロードを2回実行する必要があることを意味します。プログラムBを1回だけロードすることはできますか?

たとえば、プログラムAはいくつかのパラメータを使用してプログラムBを呼び出します。これにより、プログラムBはテキストを返しますが、プログラムは実行を継続します。プログラムAは同じプロセスを再度呼び出します。これにより、プログラムBはより多くのことを実行します。

おそらく何らかのWindowsメッセージングを使用して、上記は可能ですか?プログラムAはDelphiアプリであり、WindowsのCreateProcessメソッドを使用します。プログラムBは、渡されたパラメーターに応じてさまざまなことを行う.NETアプリです。プログラムBをWindowsサービスとしてインストールすることでこれを実行できることはわかっていますが、可能であればそれを避けたいと思います。

4

2 に答える 2

0

ここに、プロセス間通信のテクノロジーがあります。.NETには、これを行うためのWCF/webservicesなどがあります。このサービスは、実行可能ファイル(コンソールアプリでも)を使用して、またはWindowsサービスとしてホストできます。Webサーバー(IIS)も選択できます。

プログラムBは.NETにあるため、サービスとしてホストし、Delphiアプリケーションで使用できます。目的はわかりませんが、サービスでは避けたいと思います。しかし、これは積極的にあなたに優勢を与え、実装はかなり簡単です。

C / C ++などを使用している場合でも、gSOAPなどのラッパーを使用してプログラムBをWebサービスとして提供することを考えることができます。

于 2010-07-15T05:26:06.747 に答える
0

最終的にプログラム B を作成しましたが、プログラム B は目に見えない形をしているため、継続的に実行されます。プログラム A は、実行する作業が必要になるたびに Windows メッセージをプログラム B に送信します。プログラム A が終了すると、プログラム B に「Quit」メッセージが送信され、プログラム B もメッセージを見て終了します。

于 2010-09-16T22:11:30.427 に答える