2009-03-01 11 views
1

Я пытаюсь написать программу на C# для получения полного списка процессов. Однако я обнаружил, что приложение открывает окно, но я не вижу его на вкладке процесса диспетчера задач Windows, я вижу его на вкладке задач. Кроме того, я также не могу получить его информацию, используя мой код C#.Получить полный список процессов с помощью C#

static void showProcesses() 
{ 
    Process[] procs = Process.GetProcesses(); 

    foreach (Process proc in procs) 
    { 
     Console.WriteLine(proc.ProcessName); 
    } 
} 

Я просмотрел много форумов, но я могу только найти способы, чтобы скрыть процесс, и я не найти какой-либо метод для отображения скрытых процессов. Кто-нибудь знает, как получить скрытую информацию о процессе?

ответ

5

В Windows нет скрытых процессов. Только процессы, которые у вас отсутствуют (безопасность), чтобы видеть.

Процесс, выполняющийся как администратор (в Vista/Win7/Win2k8 должен быть повышен), всегда будет способен видеть все процессы.

Однако консольное приложение, в котором перечислены процессы, может нормально выйти, пока дисплей Диспетчера задач не обновится, и, следовательно, его не будет видно. Это, скорее всего, с простой программой, даже если скорость обновления установлена ​​на «высокий».

Вам нужно поддерживать свой процесс до тех пор, пока диспетчер задач не обновит свой дисплей. Самый простой способ - добавить следующие операторы в конец вашего метода Main:

Console.Write("Press ENTER to exit"); 
Console.ReadLine(); 
0

Я не уверен, что вы имеете в виду. В приведенном выше коде указано такое же количество процессов, как pslist. Когда вы говорите о методах скрыть процесс, вы говорите о корневых наборах? Если это так, они обычно работают, изменяя, как работают команды списка. То есть процессы фактически перечисляются, но информация не отображается пользователю.

0

это прекрасно работает все, что вам нужно добавить:

Console.Write("Press ENTER to exit"); 
Console.ReadLine(); 

в конце или начать проект с Ctrl + F5

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