Не завершается процесс C#

236
27 июня 2017, 21:12

Имеется код, который должен завершать процесс, который был запущен из указанной папки:

namespace newkill
{
    class Program
    {  
        static void Main() { }
        string path = @"C:\Users\" + Environment.UserName + @"\AppData\Roaming\WindowsW0W32\";
        public static void KillProcesses(string path)
        {
            Process.GetProcesses() // получаем все процессы
                .Where(p => CheckIfProcessFileEquals(p, path)) // берем только те, в которых пути к файлу совпадают
                .ToList()
                .ForEach(p => p.Kill()); // убиваем каждый
        }
        private static bool CheckIfProcessFileEquals(Process process, string path)
        {
            try
            {
                return process.MainModule.FileName.Equals(path, StringComparison.InvariantCultureIgnoreCase); // сравниваем пути, инорим кейс
            }
            catch (Win32Exception)
            {
                return false; // если MainModule недоступен - скипаем
            }
        }
    }
}

Файл запущен именно из этой папки - C:\Users\" + Environment.UserName + @"\AppData\Roaming\WindowsW0W32\ но после выполнения программы процесс не убивается. Что может быть не так? Версия .NET 3.5

Answer 1

У вас выполниться ровно то, что написано в Main:

static void Main() { }

Т.е ни-че-го.

Исправляйте:

static void Main()
{
    var path = @"C:\Users\" + Environment.UserName + @"\AppData\Roaming\WindowsW0W32\file.exe";
    KillProcesses(path);
}

Так же советую получать путь к AppData с помощью Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) и использовать Path.Combine() для конкатенации пути к файлу:

static void Main()
{
    var path = Path.Combine(
        Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
        "Roaming",
        "WindowsW0W32",
        "file.exe");
    KillProcesses(path);
}
READ ALSO
Некорректно парсится дата

Некорректно парсится дата

У меня проблема с парсингом даты из строки в Datetime формат, когда я использую, напр01

264
Экспорт раздела реестра в файл

Экспорт раздела реестра в файл

Как экспортировать определенный раздел из реестра в файл "reg" ?

266
Как в ASP.Net Core работать с PostgreSQL?

Как в ASP.Net Core работать с PostgreSQL?

С помощью каких библиотек Вы работаете в ASPNet Core с PostgreSQL?

330