Закрытие процессов которые есть в CheckedListBox

Код для нахождения процессов

private void siticoneGradientButton3_Click(object sender, EventArgs e)
    {
        checkedListBox1.Items.Clear();
        DisplayRunningApplicationsInCheckedListBox();
        
    }
    
    private void DisplayRunningApplicationsInCheckedListBox()
    {
        List<string> runningApplications = GetRunningApplications();
    
        foreach (string application in runningApplications)
        {
            checkedListBox1.Items.Add(application);
        }
    }
    
    private List<string> GetRunningApplications()
    {
        List<string> runningApplications = new List<string>();
    
        Process[] processes = Process.GetProcesses();
    
        foreach (Process process in processes)
        {
            // Исключаем системные процессы
            if (!IsSystemProcess(process))
            {
                if (!string.IsNullOrEmpty(process.MainWindowTitle))
                {
                    runningApplications.Add(process.MainWindowTitle);
                }
            }
        }
    
        return runningApplications;
    }
    
    private bool IsSystemProcess(Process process)
    {
        // Добавьте условия для исключения системных процессов
        string processName = process.ProcessName;
    
        if (processName == "taskhost" || processName == "services" || processName == "svchost" || processName == "Mediaplayer")
        {
            return true;
        }
    
        return false;
    }

Код для закрытия этих процессов

private void CloseAllProcesses()
{
    foreach (var process in Process.GetProcesses())
    {
        // Проверяем, отмечен ли процесс в CheckedlistBox
        if (!checkedListBox1.Items.Contains(process.ProcessName))
        {
            try
            {
                process.Kill(); // Завершаем процесс, только если он не отмечен в CheckedListBox
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Ошибка при завершении процесса: {process.ProcessName}. {ex.Message}");
            }
        }
    }
}

У меня вообще компьютер крашнулся

Нужно чтобы помеченные процессы не закрывались


Ответы (0 шт):