Получить полный список процессов с помощью C#

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

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

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

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

Ответов (3)

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

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

в конце или запустить проект с помощью ctrl + F5

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

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

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

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

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

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