.NET 2.x Диспетчер задач. - C#

Узнай цену своей работы

Формулировка задачи:

Начал писать диспетчер задач. Но не как не получается завершить процесс; А так же узнать количество частной рабочей памяти процесса; Код
//Клик по кнопке получающей список процессов
private void button1_Click(object sender, EventArgs e)
        {
            int i = 0;
            listView1.Items.Clear();//по идее очистка listView1 но при повторном юзанье вся таблица ползёт
            foreach (Process p in Process.GetProcesses())
            {
                listView1.Items.Add(p.ProcessName);//Имя процесса
 
                listView1.Items[i].SubItems.Add(p.Id.ToString());//его ID
 
                listView1.Items[i].SubItems.Add(p.Threads.Count.ToString());//Количество потоков
 
                listView1.Items[i++].SubItems.Add(p.PrivateMemorySize64.ToString());//По идее должно быть кол во памяти не нет....
            }
            listView1.Sorting = SortOrder.Ascending;//по алфавиту с A-Z
            listView1.Sort();//сортируем
        }
//завершаем процессы
private void Close_Process_Click(object sender, EventArgs e)
        {
            try
            {
                if (listView1.SelectedIndices.Count != 0)//узнаём кол-во выделенных элементов
                {
                    for (int i = 0; i < listView1.SelectedIndices.Count; i++)//пробегаемся по списку
                    {
                        int idProc = Convert.ToInt32(listView1.Items[i].SubItems[1].Text);//узнаём ID;
                        Process.GetProcessById(idProc).Kill();//Убиваем по ID но почему то не работает;
                        listView1.Items[listView1.SelectedIndices[i]].Remove();//Удаляем запись из списка;
                    }
                }
            }
            catch
            {
                        MessageBox.Show("Что то не так");
            }
            list_color();
        }

Решение задачи: «.NET 2.x Диспетчер задач.»

textual
Листинг программы
private void Close_Process_Click(object sender, EventArgs e)
        {
            try
            {
                if (listView1.SelectedItems.Count != 0)
                {
                    Process[] proc = Process.GetProcesses();
                    foreach (Process p in proc) 
                    {
                        foreach(int i in listView1.SelectedIndices)
                        {
                            if (p.ProcessName.Trim().ToLower() == listView1.Items[i].Text.Trim().ToLower())
                            {
                                p.Kill();
                                
                            }
                        }
                    }
                    button1_Click(sender, e);
                }
            }
            catch
            {
                MessageBox.Show("Что то не так");
            }
            list_color();
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы