2012-01-11 17 views
0

ここにシナリオがあります: -
私は2つのアプリケーションを持っています - 1つはC#で、もう1つはVC++です。
C#で書かれたものがメインアプリケーションであり、button clickの場合、VC++アプリケーションはC#アプリケーションのpanelの内部で実行されます。正常に実行されています。
しかし、VC++アプリケーションの実行が完了したかどうかをどのように検出できますか?私はそれが実行を完了したことがわかりますが、processname.HasExited技術を使用して、VC++プロセスが完了したときに実行するいくつかの他のタスクを組み込もうとすると、私はそうすることができません。たとえ
processname.Exited += new EventHandler(processname_Exited);でも動作していないようです。
とにかくこの問題の解決方法を教えてもらえますか?プロセスが実行を完了したかどうかを検出する方法

ありがとうございました。

EDIT#1:
processnameSystem.Diagnostic.Processオブジェクトです。

+0

ドキュメントでは、「このイベントは、EnableRaisingEventsプロパティの値が** true **の場合にのみ発生します。あなたは 'EnableRaisingEvents'を' true'に設定するのを忘れましたか? P.S.、 'processname'が' System.Diagnostic.Process'オブジェクトであると言えば、多くの助けになります。あなたが話していたことを理解するために検索する必要がありました。 –

+0

@RaymondChenはい、それは 'System.Diagnostic.Process'オブジェクトです。申し訳ありませんが、私はそれを言及するのを忘れました。はい、私は 'EnableRaisingEvents'プロパティの値を' true'に設定しました。しかし、それでも動作しません。 – OutOfBoundsException

+0

そのプロジェクトのようなサウンドは本当に終了しませんでした。タスクマネージャーにチェックしてください:それはまだぶら下がっていますか? –

答えて

0

VC++アプリケーションのWM_QUITイベントでPostMessage()APIを使用してカスタムメッセージを送信することにより、クライアントアプリケーション(ここではVC++アプリ)の「終了」を親アプリケーション(ここではC#アプリ)に伝えることをお勧めします。私はC#親アプリでこのメッセージを受け取る方法については確信していません。

関連する問題