Jak wyświetlić aktywne okna aplikacji za pomocą C #

Muszę być w stanie wymienić wszystkie aktywne aplikacje na komputerze z systemem Windows. Używałem tego kodu ...

  Process[] procs = Process.GetProcesses(".");
  foreach (Process proc in procs)
  {
      if (proc.MainWindowTitle.Length > 0)
      {
          toolStripComboBox_StartSharingProcessWindow.Items.Add(proc.MainWindowTitle);
      }
  }

dopóki nie zorientowałem się, że nie wyświetla listy przypadków takich jak WORD lub ACROREAD, gdy wiele plików jest otwieranych w ich własnym oknie. W takiej sytuacji tylko najwyższe okno jest wymienione przy użyciu powyższej techniki. Zakładam, że to dlatego, że istnieje tylko jeden proces, mimo że otwierane są dwa (lub więcej) pliki. Sądzę więc, że moje pytanie brzmi: jak wypisać wszystkie okna, a nie ich podstawowe procesy?

questionAnswers(1)

yourAnswerToTheQuestion