C# 殺掉系統中的進程

  殺掉系統進程之前首先要知道進程名稱(說了句廢話),這裏要注意在任務管理器中的進程名稱不一定是真實的名稱。打個比方,我們開啓一個"記事本",任務管理器中進程名稱爲"記事本",但是實際名爲"notepad"。如果不知道在哪裏看,可以點開任務管理器中的進程右擊屬性查看,一般都是xxx.exe形式。

  接下來我們開始寫代碼,可以循環取到系統中所有正在運行的進程,然後根據name和id匹配將要刪除的進程,值得注意的是:開啓多個"記事本"進程,name是一致的,如果根據name殺進程,那麼都會被關閉掉。id是唯一的,但是每次啓動"記事本"id會被隨機分配。

引用:

using System.Diagnostics;

代碼:

/// <summary>
/// 殺掉FoxitReader進程
/// </summary>
/// <param name="strProcessesByName"></param>
public static void KillProcess(string processName) 
{ 
    foreach (Process p in Process.GetProcesses())            
    {
        if (p.ProcessName.Contains(processName))
        {
            try
            {
                p.Kill();
                p.WaitForExit(); // possibly with a timeout
                Console.WriteLine($"已殺掉{processName}進程!!!");
            }
            catch (Win32Exception e)
            { 
                Console.WriteLine(e.Message.ToString());    
            }
            catch (InvalidOperationException e)
            { 
                Console.WriteLine(e.Message.ToString()); 
            }
        }
        
    }
}

調用:

KillProcess("notepad");

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章