C# - 使用 PID 杀死 process/task 的方法
C# - Method for killing a process/task using PID
我正在尝试使用 C# 创建一个 Web 服务,该服务将用于终止当前 运行ning 的 process/task。每当我尝试 运行 它并输入正确的 PID 来终止该特定任务时,我都会收到此错误消息“System.ComponentModel.Win32Exception: 'The system cannot find the file specified'”.
public string KillTask(int pid)
{
Process killTask = new Process();
killTask.StartInfo.FileName = (@"C:\Windows\System32\taskkill.exe /f /pid " + pid);
killTask.StartInfo.RedirectStandardOutput = true;
killTask.StartInfo.UseShellExecute = false;
killTask.Start();
killTask.WaitForExit();
return "";
}
错误信息突出killTask.Start()但是我不太明白为什么系统找不到文件。
FileName 只是可执行文件的文件名。您必须在 Arguments 属性.
中传递任何参数
例如
killTask.StartInfo.FileName = @"C:\Windows\System32\taskkill.exe";
killTask.StartInfo.Arguments = @"/f /pid " + pid;
如果你想杀死进程(?),你可以很容易地做到
var processToKill = Process.GetProcessById(pid);
processToKill.Kill();
或使用 return 值(为什么要字符串?)
public bool KillTask(int pid)
{
try
{
var processToKill = Process.GetProcessById(pid);
}
catch (ArgumentException) //Exception when no process found
{
return false;
}
processToKill.Kill();
return true;
}
我正在尝试使用 C# 创建一个 Web 服务,该服务将用于终止当前 运行ning 的 process/task。每当我尝试 运行 它并输入正确的 PID 来终止该特定任务时,我都会收到此错误消息“System.ComponentModel.Win32Exception: 'The system cannot find the file specified'”.
public string KillTask(int pid)
{
Process killTask = new Process();
killTask.StartInfo.FileName = (@"C:\Windows\System32\taskkill.exe /f /pid " + pid);
killTask.StartInfo.RedirectStandardOutput = true;
killTask.StartInfo.UseShellExecute = false;
killTask.Start();
killTask.WaitForExit();
return "";
}
错误信息突出killTask.Start()但是我不太明白为什么系统找不到文件。
FileName 只是可执行文件的文件名。您必须在 Arguments 属性.
中传递任何参数例如
killTask.StartInfo.FileName = @"C:\Windows\System32\taskkill.exe";
killTask.StartInfo.Arguments = @"/f /pid " + pid;
如果你想杀死进程(?),你可以很容易地做到
var processToKill = Process.GetProcessById(pid);
processToKill.Kill();
或使用 return 值(为什么要字符串?)
public bool KillTask(int pid)
{
try
{
var processToKill = Process.GetProcessById(pid);
}
catch (ArgumentException) //Exception when no process found
{
return false;
}
processToKill.Kill();
return true;
}