HOW TO:停止處理序
更新:2007 年 11 月
您可以使用 Process 元件的兩個方法來停止處理序 (Process)。要使用哪一個方法則端視要停止處理序的類型:
如果處理序具有圖形使用者介面,請呼叫 CloseMainWindow 方法。這個方法會將關閉要求傳送至處理序的主視窗,作用的方式就像從使用者介面選取 [關閉] 命令。使用這個方法能夠讓目標程式有機會提示使用者儲存任何在清除作業期間未儲存的資料。
如果處理序沒有使用者介面,則呼叫 Kill 方法。
警告: 呼叫 Kill 方法將會立即停止處理序,而不會提示要儲存已變更的資料。任何未儲存的資料都將遺失。
如果要元件在作業系統關閉處理序時接獲通知,您必須將 EnableRaisingEvents 屬性 (Property) 設定為 true。EnableRaisingEvents 屬性是用於非同步處理 (Asynchronous Processing),將處理序已結束的訊息告知您的應用程式。
若要停止處理序
呼叫 GetProcessesByName 方法,以擷取您要停止的處理序。
如需詳細資訊,請參閱 HOW TO:繫結至現有的處理序。
呼叫下列任一方法:
如果處理序具有使用者介面,則呼叫 CloseMainWindow 方法。
如果處理序是無視窗 (Windowless),則呼叫 Kill 方法。
以下範例將說明如何呼叫 CloseMainWindow 方法,來關閉目前在本機電腦上執行的所有記事本執行個體:
Dim myProcesses() As Process Dim myProcess As Process ' Returns array containing all instances of "Notepad". myProcesses = Process.GetProcessesByName("Notepad") For Each myProcess In myProcesses myProcess.CloseMainWindow() Next
Process[] myProcesses; // Returns array containing all instances of Notepad. myProcesses = Process.GetProcessesByName("Notepad"); foreach (Process myProcess in myProcesses) { myProcess.CloseMainWindow(); }