2010-12-09 5 views

ответ

14

Вы можете использовать Process.GetProcesses method для предоставления информации обо всех процессах, которые в настоящее время выполняются на вашем компьютере.

Однако это показывает все запущенные процессы, в том числе те, которые не обязательно отображаются на панели задач. Так что вам нужно сделать, это отфильтровать те процессы, которые имеют пустой MainWindowTitle .the выше связанных документация объясняет, почему это работает:

Процесс имеет главное окно, связанный с ним, только если процесс имеет a графический интерфейс. Если связанный с ним процесс не имеет главного окна (так что MainWindowHandle равен нулю), MainWindowTitle - это пустая строка ("").

Таким образом, вы могли бы использовать что-то вроде следующего кода, который будет распечатывать (в окне консоли) список всех запущенных приложений, которые видны на панели задач:

Process[] processes = Process.GetProcesses(); 
foreach (var proc in processes) 
{ 
    if (!string.IsNullOrEmpty(proc.MainWindowTitle)) 
     Console.WriteLine(proc.MainWindowTitle); 
} 
+0

+1: Хороший ответ. – 2010-12-09 06:51:27

Смежные вопросы