public static void CmdKillProcess(int pid)
{
string cmdStr = string.Format("taskkill /pid {0} /f &exit", pid);
using (Process process = new Process())
{
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
process.Start();
process.StandardInput.WriteLine(cmdStr);
process.StandardInput.AutoFlush = true;
}
}
/// <summary>
/// 结束指定名称进程
/// </summary>
/// <param name="processName"></param>
public static bool KillProcess(string processName)
{
try
{
Process[] proc = Process.GetProcessesByName(processName);
foreach (var p in proc)
{
if (p.ProcessName == processName)
{
CmdKillProcess(p.Id);
}
}
return true;
}
catch
{
return false;
}
}