Как вывести список всех видимых процессов? - C#

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

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

То есть все те окна, которые видны в панели задач/ открыты и видимы. Все окна, которые работают, показывая только значок в трее или вообще не показывая ничего необходимо отсеять. По сути, список вообще всех запущенных процессов можно вывести кодом:
            System.Diagnostics.Process[] processes;
            processes = System.Diagnostics.Process.GetProcesses();
            foreach (System.Diagnostics.Process instance in processes)
            {
                listBox1.Items.Add(instance. ProcessName + instance.StartInfo.WindowStyle);   
            }
А разгадка только видимых окон должна разгадаться с помощью этого условия внутри foreach: if (instance.StartInfo. WindowStyle == ProcessWindowStyle.Normal) Но нет, судя по этому условию, вообще все процессы имеют ProcessWindowStyle.Normal, нет ни свёрнутых ни невидимых. Как отсеять?

Решение задачи: «Как вывести список всех видимых процессов?»

textual
Листинг программы
var processes = Process.GetProcesses().Where(p => p.MainWindowHandle != IntPtr.Zero);

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


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

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

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