2012-01-11 143 views
0

這裏的場景: -
我有兩個應用程序 - 一個在C#中,另一個在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'?如果你提到'processname'是一個'System.Diagnostic.Process'對象,它將會有很大的幫助。我不得不去找出你在說什麼。 – 2012-01-12 01:07:54

+0

@RaymondChen是的,它是一個'System.Diagnostic.Process'對象。對不起,我忘了提到這一點。是的,我已將「EnableRaisingEvents」屬性的值設置爲「true」。但它仍然沒有工作。 – OutOfBoundsException 2012-01-12 17:17:03

+0

這個項目的聲音並沒有真正退出。與任務經理覈對一下:它是否還在附近? – 2012-01-13 12:01:30

回答

0

我會推薦你​​通過在VC++應用程序中使用PostMessage()API發送一個自定義消息(通過WM_QUIT事件)來將客戶端應用程序(這裏是VC++應用程序)的'退出'通知給父應用程序(這裏是C#應用程序)。我不確定如何在C#父應用程序中接收此消息。

相關問題