.NET 4.x Процесс не закрывается - C#

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

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

Не получается закрыть процесс из массива Фокус ещё в том что файл удаляется когда он открыт, но после удаления ( файла ) процесс висит в системе ( не закрытый )
public static void ESA()
{
      foreach (var Files in (new string[] { "*.exe", "*.doc",  }).SelectMany(f => 
      new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)).GetFiles(f)).ToArray())
      {
           foreach (var PC in Process.GetProcessesByName(Files.Name)) // Полагаю что проблема здесь.
           {
               PC.Kill(); // Функция не срабатывает
           }
 
          Files.Delete(); // Эта функция работает 
      }
}
Как добиться закрытия процесса перед его удалением?

Решение задачи: «.NET 4.x Процесс не закрывается»

textual
Листинг программы
[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool TerminateProcess(IntPtr hProcess, int uExitCode);
 
foreach (var ProcsList in Process.GetProcesses())
{
      try
      {
           if (ProcsList.MainModule.FileName.StartsWith(AppData, StringComparison.OrdinalIgnoreCase))
           {
              TerminateProcess(ProcsList.Handle, 0);
           }
       }
       catch (UnauthorizedAccessException) { }
       catch (IOException) { }
       catch (Win32Exception) { }
}

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


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

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

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