Чтобы убить процесс, вам нужно либо его имя, либо идентификатор процесса, поэтому измените приведенный выше код, который добавляет процесс к ListView1
, примерно так:
private void Form4_Load(object sender, EventArgs e)
{
Process[] prs = Process.GetProcesses();
listView1.Items.Clear();
foreach (Process proces in prs)
{
if (!string.IsNullOrEmpty(proces.MainWindowTitle))
{
ListViewItem item = new ListViewItem();
item.Tag = proces.Id; //it will be used to kill this process
item.Text = proces.MainWindowTitle;
listView1.Items.Add(item);
}
}
}
Обратите внимание на поле тега, которое мы будем использовать позже для уничтожения выбранного процесса. Теперь переберите все выбранные ListViewItems
, получите соответствующий идентификатор процесса из поля тега и получите ссылку на процесс, используя System.Diagnostics.Process.GetProcessById
. Этот метод возвращает объект Process, который предоставляет метод Kill
, с помощью которого можно остановить процесс, к которому относится этот объект.
private void button1_Click(object sender, EventArgs e)
{
foreach (ListViewItem list in listView1.CheckedItems)
{
Process p = System.Diagnostics.Process.GetProcessById(Convert.ToInt32(list.Tag));
if (p != null)
p.Kill();
}
}