Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
3 / 1 / 2
Регистрация: 04.05.2019
Сообщений: 94
1

Убить процесс который открылся во время работы программы

20.08.2019, 15:07. Показов 1530. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
знаю тема уже заезжаная.
Как убить процесс который открылся во время работы программы.

Я нашёл такой код, но он убивает только при запуске программы.


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
List<string> name = new List<string>{"Taskmgr", "cmd"};//процесс, который нужно убить
            System.Diagnostics.Process[] etc = System.Diagnostics.Process.GetProcesses();//получим процессы
            foreach (System.Diagnostics.Process anti in etc)//обойдем каждый процесс
            {
                foreach (string s in name)
                {
                    if (anti.ProcessName.ToLower().Contains(s.ToLower())) //найдем нужный и убьем
                    {
                        anti.Kill();
                        name.Remove(s);
                    }
                }
            }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.08.2019, 15:07
Ответы с готовыми решениями:

Убить процесс через время
Добрый день, друзья! Есть проблемка. В батнике нужно сделать следующее: Сначала запускаю процесс...

Как создать таймер, который будет показывать время работы программы
как создать таймер который будет показывать время работы программы надо что бы до тысячных секунды,...

Как убить процесс при выходе из программы?
Собственно столкнулся с проблемой... Нужно запустить 2 программы по очереди, а затем при закрытии...

Как вывести время работы программы ПОСЛЕ завершения работы progressBar?
У меня почему-то сначала выводится время в MessageBox, а затем уже завершает свою работу...

8
2806 / 1676 / 884
Регистрация: 14.04.2015
Сообщений: 5,717
20.08.2019, 15:23 2
HelpMePlease_12, а как этот код будет работать и убивать процесс, если не запущен. я что-то не понял.

Добавлено через 11 минут
можешь создать сервис, который будет запускать этот код через какой-то промежуток времени. если ты об этом
0
692 / 509 / 238
Регистрация: 02.10.2012
Сообщений: 1,741
20.08.2019, 15:26 3
Цитата Сообщение от HelpMePlease_12 Посмотреть сообщение
Как убить процесс который открылся во время работы программы.
в потоке обновляй данные, а не один раз при запуске, так у вас понятное дело не появится процесс открывшийся после запуска вашей программы
0
3 / 1 / 2
Регистрация: 04.05.2019
Сообщений: 94
20.08.2019, 16:20  [ТС] 4
AndreyVorobey, смотри. Работает программа и тут появляется процесс который нужно убить и она его убивает
0
2806 / 1676 / 884
Регистрация: 14.04.2015
Сообщений: 5,717
20.08.2019, 16:38 5
HelpMePlease_12, используй таймер, и через интервал запускай код. писал же
0
3 / 1 / 2
Регистрация: 04.05.2019
Сообщений: 94
20.08.2019, 17:14  [ТС] 6
AndreyVorobey, System.InvalidOperationException: "Коллекция была изменена; невозможно выполнить операцию перечисления."
0
2806 / 1676 / 884
Регистрация: 14.04.2015
Сообщений: 5,717
20.08.2019, 17:37 7
Лучший ответ Сообщение было отмечено HelpMePlease_12 как решение

Решение

HelpMePlease_12,
можешь эту строку
C#
1
foreach (string s in name)
изменить на
C#
1
foreach (string s in nameю.ToArray())
но я не понимаю, зачем тебе name.Remove(s). ведь потом не с чем сравнивать будет, когда появится снова процесс.
1
3 / 1 / 2
Регистрация: 04.05.2019
Сообщений: 94
20.08.2019, 17:44  [ТС] 8
AndreyVorobey,
C#
1
2
3
4
5
            string name1 = "Taskmgr";//процесс, который нужно убить
            System.Diagnostics.Process[] etc = System.Diagnostics.Process.GetProcesses();//получим процессы
            foreach (System.Diagnostics.Process anti in etc)//обойдем каждый процесс
                if (anti.ProcessName.ToLower().Contains(name1.ToLower())) anti.Kill();//найдем нужный и убьем
                                                                                     //ToLower() - метод для переведения все
лучший вариант для 1 процесса
0
2806 / 1676 / 884
Регистрация: 14.04.2015
Сообщений: 5,717
21.08.2019, 00:32 9
HelpMePlease_12, он и с листом бы так же работал, если бы ты из него не удалял ничего. Разницы принципиальной никакой между списком и строкой.
0
21.08.2019, 00:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.08.2019, 00:32
Помогаю со студенческими работами здесь

Как сделать так, чтобы поток ofstream НЕ открылся, или открылся неправильно?
Эта ситуация нужна мне для тестирования. Итак, файл &quot;file.txt&quot; вручную не удаляется. Не...

Написать программу вычисления величины дохода по вкладу. Процентная ставка (% годовых) и время хранения (дней) задаются во время работы программы
1. Написать программу вычисления величины дохода по вкладу. Процентная ставка (% годовых) и время...

Убить процесс
Как чтобы при нажатии красной кнопки с крестом (системная, в правом верхнем углу формы) убить весь...

убить процесс
На win serv 2008 R2 Standart 64 80й порт занимает некий процесс с PID 4 Часть вывода netstat...


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

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