子プロセスでC#のkillプロセス

使用してシステムを。
使用してSystem.Collections.Genericを。
使用したSystem.Diagnosticsを。
使用してSystem.Linqのを。
使用してSystem.Managementを。
使用してSystem.Textのを。
使用してSystem.Threading.Tasksを。

名前空間ProcessDog.Helper 
{ 
    公共の 静的な クラスProcessHelper 
    { 
        ///  <要約> 
        /// プロセスを強制終了し、そのすべての子、孫など
         ///  </要約> 
        ///  <PARAM NAME = "PID" > プロセスID。</ param>の
        パブリック 静的 ボイドKillProcessAndChildren(int型PID)
        { 
            // クローズできません'システムアイドルプロセス'。
            もし(PID == 0 
            { 
                返します
            } 
            ManagementObjectSearcherサーチャ = ManagementObjectSearcher " SELECT * Win32_ProcessにどこからParentProcessID = " + PID)。
            ManagementObjectCollectionのMOC = searcher.Get()。
            foreachの(MOするManagementObject MOC)
            {
                KillProcessAndChildren(Convert.ToInt32(MO [ " ProcessIDの" ]))。
            } 
            試みる
            { 
                プロセスPROC = Process.GetProcessById(PID)。
                proc.Kill(); 
            } 
            キャッチ(ArgumentExceptionが)
            { 
                // プロセスはすでに終了しました。
            } 
        } 

    } 
}

 

おすすめ

転載: www.cnblogs.com/nocanstillbb/p/11428116.html
おすすめ