0

そこに記載されていることを怠った場合、質問はこれに関連しています。
あるプログラムを別のプログラムから実行し、起動後にその実行プログラムからいくつかの関数を呼び出すことは可能ですか? たとえば、SIPサーバーに登録するWCFサービスから小さなWindowsプログラムを実行し、サービスからいくつかの番号への呼び出しを開始するように依頼する必要がある場合があります。それで、それは可能ですか(メッセージングサーバーを実行せずに)、それを実装する方法に関する情報はどこにありますか?
ありがとうございました。

4

1 に答える 1

1

これを行う一般的な方法を次に示します。

1) コマンドライン引数。コマンドライン パラメーターをアプリケーションに渡します。アプリケーションはそれらのパラメーターを解釈し、何らかのアクションを実行して終了します。

2) プロセス間通信 (IPC)。これは、2 つのプロセスが通信できるようにする任意の手法を指します。これを行う方法はたくさんありますが、Windows では名前付きパイプを使用するのが一般的です。例については、 http://www.codeguru.com/csharp/csharp/cs_misc/sampleprograms/article.php/c7259/InterProcess-Communication-in-NET-Using-Named-Pipes-Part-1.htmを参照してください。

3) 呼び出されたアプリを、呼び出したい関数を含むエンドポイントを公開するネットワーク サービスとして実行します。サービスは引き続き実行され、ネットワーク要求を受け入れて実行し、結果を返します。

4) コンソールの stdin と stdout のリダイレクト (より適切な名前があるかどうかはわかりません)。これは (1) の変形であり、(コンソールのみの) アプリケーションは実行されたままですが、呼び出し元のアプリがコンソール アプリの stdin と stdout を制御し、それと対話できます。(事実上、コンソールに何かを入力し、コンソールに書き込まれたものを読み取ることができます)。

于 2012-04-25T14:55:02.463 に答える