Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
434 / 299 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
1
.NET 2.x

Диспетчер задач.

29.08.2011, 03:00. Показов 2480. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Начал писать диспетчер задач.
Но не как не получается завершить процесс;
А так же узнать количество частной рабочей памяти процесса;
Код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//Клик по кнопке получающей список процессов
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();
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2011, 03:00
Ответы с готовыми решениями:

Диспетчер задач
Доброе время суток! Как можно просмотреть все процессы для деспетчера задач? Что нужно для этого...

Диспетчер задач на C#
Здравствуйте. Пишу диспетчер задач. Помогите пожалуйста - как можно вызвать текущие приложения? (...

Закрыть программу в диспетчер задач
Помогите пожалуйста с решением этой проблемы. Сдача проекта скоро, а тут такое. Нужно закрыть...

Автообновление listview без моргания - Диспетчер Задач
Не могу сделать автообновление как диспетчере задач, listview моргает по старшному + списки итемов...

1
1452 / 360 / 61
Регистрация: 03.04.2010
Сообщений: 2,096
29.08.2011, 10:53 2
Для завершения процесса, замените обработчик второй кнопки на это

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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();
        }
Код правда далек от идеала, но работает. Правда не со всеми процессами, только с теми что разрешено. А про память, я даже не знаю что поможет. В этом я бессилен)
0
29.08.2011, 10:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.08.2011, 10:53
Помогаю со студенческими работами здесь

Свой диспетчер задач: Завершение работы указанного процесса
private void terminateProcessButton_Click(object sender, EventArgs e) { ...

Выполнить код при закрытии программы через диспетчер задач
Здравствуйте! Возможно ли выполнить код после закрытия программы в диспетчере задач? private void...

Консольное приложение, ждет ввода Console.ReadLine(), диспетчер задач показывает 3 потока
Здравствуйте, гуглил ничего не нашел, обычное консольное приложение, ждет ввода Console.ReadLine(),...

диспетчер задач
Скрыть с диспетчер задач свой процесс?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru