2014-02-22 36 views
2

我在C#中使用此代碼通知C#執行DOS和當它完成

System.Diagnostics.Process.Start(「CMD.exe」,@」/C cd\ & mySecondCommandHere「); 

它工作正常,但是當它這樣做並沒有告訴。

如何在dos命令完成時獲取代碼以提醒我?

回答

8

一種方法是調用WaitForExit。這將阻止執行,直到有問題的進程退出。

var process = System.Diagnostics.Process.Start("..."); 
//The next line will block until the process has finished 
process.WaitForExit(); 
4

您可以獲取流程對象並訂閱其Exited事件。

var process = System.Diagnostics.Process.Start("..."); 
process.Exited += ... 

或者,您可以使用WaitForExit()同步等待進程。但是,這是一個阻止呼叫。

-1

使用如下方法:

private bool AlertMe() 
{ 
    bool isCompleted = false; 
    System.Diagnostics.Process.Start(「CMD.exe」,@」/C cd\ & mySecondCommandHere「); 
    isCompleted = true; 
    System.Media.SystemSounds.Beep.Play(); 
    return isCompleted; 
} 

System.Media.SystemSounds.Beep.Play()會提醒你的系統提示音。

+1

不,這個過程是異步啓動的 – Georg

+0

@Georg你是對的。我剛剛在你的評論後檢查過。謝謝你的收穫! – autopilot

相關問題