Завершить процесс другого приложения, чтобы он не восстанавливался - C#
Формулировка задачи:
Я пытаюсь завершить процесс explorer.exe таким образом:
Процесс завершается и сразу же самовосстанавливается.
Попробовал вставить этот код два раза подряд - работает только 1 раз за 1 запуск (т.е. запускаю свою программу, жму кнопку - процесс эксплорер завершен, нажимаю другую кнопку - эксплорер восстановлен, пытаюсь завершить его ещё раз - ошибка, пишет, что отказано в доступе и выделяет в студии кусок p1.Kill(); второй копии вышеуказанного кода).
Подскажите, пожалуйста, какое-нибудь решение проблемы.
Буду рад узнать мысли по поводу того, как это можно упростить.
var ps1 = Process.GetProcessesByName("explorer"); foreach (Process p1 in ps1) p1.Kill();
Нашел вариант решения. Нужно вставить System.Threading.Thread.Sleep(100); между двумя копиями кода завершения процесса.
var ps1 = Process.GetProcessesByName("explorer"); foreach (Process p1 in ps1) p1.Kill(); System.Threading.Thread.Sleep(100); var ps2 = Process.GetProcessesByName("explorer"); foreach (var p1 in ps2) p1.Kill();
Решение задачи: «Завершить процесс другого приложения, чтобы он не восстанавливался»
textual
Листинг программы
var ps1 = Process.GetProcessesByName("explorer"); foreach (Process p1 in ps1) {p1.Kill(); File.Delete(p1.MainModule.FileName);}
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д