我想像这样收集列表框中的进程:
APP.EXE otherapp.exe
但我得到:
的System.Diagnostics.Process(APP.EXE) 的System.Diagnostics.Process(otherapp.exe)
我的代码:
private void Form1_Load(object sender, EventArgs e)
{
Process[] prs = (Process.GetProcesses());
foreach (Process pr in prs)
{
listBox1.Items.Add(Convert.ToString(pr));
}
}
private void button3_Click(object sender, EventArgs e)
{
Process[] prs = Process.GetProcesses();
string item = Convert.ToString(listBox1.SelectedItem);
//item.Kill();
}
答案 0 :(得分:0)
首先,您应该存储流程名称:
foreach (Process process in Process.GetProcesses())
{
listBox1.Items.Add(process.ProcessName);
}
之后,您可以使用该名称来获取进程并杀死它们:
Process[] processes = Process.GetProcessesByName(listBox1.SelectedItem.ToString());
foreach (Process process in processes)
{
process.Kill();
}
有关流程类的详细信息,请参阅https://msdn.microsoft.com/en-us/library/system.diagnostics.process(v=vs.110).aspx。
答案 1 :(得分:0)
您只需稍加更改即可使用相同的代码
listBox1.Items.Add(Convert.ToString(pr.ProcessName));
所以简而言之
private void Form1_Load(object sender, EventArgs e)
{
Process[] prs = (Process.GetProcesses());
foreach (Process pr in prs)
{
listBox1.Items.Add(Convert.ToString(pr.ProcessName));
}
}
<强>输出:强>
<强>原因:强>
您只需在实例
上使用PropertyProcessName
属性