2013-10-20 115 views
1

這是我用來運行下面的exe程序的代碼。我運行後如何結束這3個過程?如何在運行後停止進程?

Process.Start(@"C:\Bot-shortcut\DIE1.exe"); 
Process.Start(@"C:\Bot-shortcut\DIE2.exe"); 
Process.Start(@"C:\Bot-shortcut\DIE3.exe"); 

回答

0

可以使用Kill

Process myProcess = new Process(@"C:\Bot-shortcut\DIE1.exe"); 

myProcess.Start(); 

//After Some Codes 

myProcess.Kill(); 
0

的Process.Start返回您已經啓動了流程實例結束你的過程。

將其存儲在變量中,並使用Process.Kill方法在完成該操作後終止該進程。

Process process = Process.Start(@"C:\Bot-shortcut\DIE1.exe"); 
process.Kill(); 
1

您必須按名稱獲取進程,然後停止它。 下面是從MSDN代碼片段:

Process[] myProcesses; 
    // Returns array containing all instances of Notepad. 
    myProcesses = Process.GetProcessesByName("Notepad"); 
    foreach (Process myProcess in myProcesses) 
    { 
     myProcess.CloseMainWindow(); 
    } 

的Process.kill()也將停止該過程,但沒有任何提示。

This文章中查找細節。

+5

如果你是第一個啓動它的人,你爲什麼會按名稱獲得該過程? –

0

存儲過程的對象變量:

var proc1 =Process.Start(@"C:\Bot-shortcut\DIE1.exe"); 
var proc2 = Process.Start(@"C:\Bot-shortcut\DIE2.exe"); 
var proc3 = Process.Start(@"C:\Bot-shortcut\DIE3.exe"); 

,等待他們退出:

proc1.WaitForExit(); 
proc2.WaitForExit(); 
proc3.WaitForExit(); 

或者殺死他們:

proc1.Kill(); 
proc2.Kill(); 
proc3.Kill(); 
6

首先,存儲過程返回的對象當你開始這個過程。

如果您想要它關閉通常,好像有人點擊了關閉圖標,然後使用CloseMainWindow。這模擬點擊關閉圖標,以便進程可以正常關閉。這總比殺死可能破壞數據的進程更可取。

如果您想立即死亡,請使用Kill。請注意,這可能會破壞數據;當你殺死它時,該進程可能已經寫入了一個文件。

+2

豎起大拇指,如果你喜歡埃裏克的新照片':)' –

+2

@SonerGönül:看起來更年輕,不再是一個[認真作者的臉](http://ericlippert.com/wp-content/uploads/2012/11/EricLippertHeadshot .JPG)。 –