方法一:透過 CMD 強制結束
string processName = "explorer";
Process[] procs = Process.GetProcessesByName(processName);
if (procs.Length > 0) {
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.RedirectStandardError = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.Start();
// 使用 ntsd 強制終結(需安裝 Debugging Tools)
cmd.StandardInput.WriteLine($"ntsd -c q -p {procs[0].Id}");
cmd.StandardInput.WriteLine("exit");
}
方法二:使用 Process.Kill()(推薦)
string processName = "explorer";
Process[] procs = Process.GetProcessesByName(processName);
if (procs.Length > 0) {
procs[0].Kill(); // 標準終結
}
比較
Kill() 為 .NET 內建、跨平台、無需外部工具
- CMD 方式依賴
ntsd,僅限 Windows 且需額外安裝