我有一个任务杀手程序,其中包含当前正在运行的进程的列表框。选择项目后,单击按钮会运行代码以终止所选任务。一切正常,但我需要帮助的是操作我的表单上的字符串输出,显示最后一个任务被杀死的内容。例如,如果我打开计算器并终止该任务,我的字符串输出是:“System.Diagnostics.Process(calc)”。如果只是说“计算”,我更愿意。所以我需要能够剥离“System.Diagnostics.Process()”
public bool KillProcess(ListBox PList, TextBox Killed)
{
bool Kill = true;
string x = "";
Killed.Text = "";
if (PList.SelectedItem != null)
{
foreach (Process p in Process.GetProcesses(Environment.MachineName))
{
x = PList.SelectedItem.ToString();
if (p.ProcessName.Equals(x))
{
try
{
p.Kill();
//*************** Here is where I have the process killed placed into a textbox
//Which I would like to not say "System.Diagnostics.Process..."
Killed.Text = p.ToString();
}
catch
{
MessageBox.Show(p.ProcessName.ToString() + " cannot be killed. ", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
Kill = false;
}
}
}
}
else
{
MessageBox.Show("Please select a process to be killed.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
Kill = false;
}
return Kill;
}
答案 0 :(得分:6)
而不是
Killed.Text = p.ToString();
试
Killed.Text = p.ProcessName;
另外,作为单独的注释,您无需在其他地方说p.ProcessName.ToString()
,因为p.ProcessName
已经是字符串。
答案 1 :(得分:3)
您只需使用p.ProcessName
。
您还可以访问p.StartInfo
进入ProcessStartInfo
,这也会为您提供有关流程的更多信息(例如文件名) - 此可以有用