2009-08-03 184 views
1

應用程序應該自行殺死在vb.net中如何做?請幫助我在這種情況下...殺死運行應用程序

+1

這些是2個不同的問題。殺死自己可能就像從主體返回一樣簡單......殺死另一個進程是一個完全不同的故事。但是我對VB.net不是很熟悉,所以我也無法幫助你;) – mpen 2009-08-03 07:53:47

回答

2

如果您正在執行winforms應用程序,則可以使用Application.Exit函數。

像例如,如果你想退出(殺死),您的應用程序上的一個按鈕的點擊

Sub button1_Click(sender As object, e As System.EventArgs) 
    Application.Exit() 
End Sub 
1

Application.Exit()應該做的伎倆(或類似的東西,沒有得到VS在fromt我的ATM)

這是一個Windows窗體應用程序的權利?

3

如果它是一個Windows窗體應用程序,「最乾淨」的方法是關閉主窗體(例如通過調用Me.Close())。

如果關閉主窗體不會退出應用程序,那麼很可能您還有其他線程(這些線程不是後臺線程)仍在運行。如果是這種情況,您應該調查爲什麼線程仍在運行(或者在啓動時將它們標記爲後臺線程,以便它們不會使應用程序保持活動狀態)。

1

真正醜陋的方式是使用系統命令:

taskkill.exe/F/IM myapplication.exe

+0

有用的直接命令 – Mastercafe 2015-02-09 20:14:39

0
using System.Diagnostics; 

/// <summary> 
/// Kill all instances of a Process by name 
/// </summary> 
/// <param name="name">name of the process to kill</param> 
/// <example> 
/// KillAllProcesses("Outlook"); 
/// </example> 
private void KillAllProcesses(string name) 
{ 
    Process[] processes = Process.GetProcessesByName(name); 
    foreach(Process p in processes) 
     p.Kill(); 
} 

這是殺死其他進程(不是本身)。代碼是用C#編寫的,但我認爲你可以翻譯成VB.NET。

此外,我會投票Form.Close()作爲關閉應用程序的最正確的方式,但有時它會需要大量的設計工作(例如,當您想關閉應用程序,當數據層發生seriuos異常時,和數據層無法通知主窗體關於異常)和Application.Exit通常被認爲是最簡單的方法...

ps另外,對於控制檯應用程序,您應該使用

Environment.Exit()