Получить полный список процессов с помощью C#
Я пытаюсь написать программу на C# для получения полного списка процессов. Однако я обнаружил, что приложение открывает окно, но я не вижу его на вкладке процесса диспетчера задач Windows, я вижу его на вкладке задач. Кроме того, я также не могу получить его информацию, используя свой код на C#.
static void showProcesses()
{
Process[] procs = Process.GetProcesses();
foreach (Process proc in procs)
{
Console.WriteLine(proc.ProcessName);
}
}
Я просмотрел много форумов, но могу найти только методы, чтобы скрыть процесс, и я не нахожу никакого метода для отображения скрытых процессов. Кто-нибудь знает, как получить скрытую информацию о процессе?
Ответов (3)3
Я не уверен, что вы имеете в виду. В приведенном выше коде указано то же количество процессов, что и pslist
. Когда вы говорите о методах скрытия процесса, вы имеете в виду руткиты? В таком случае они обычно работают, изменяя способ работы команд списка. Т.е. процессы фактически перечисляются, но информация пользователю не отображается.
В Windows нет скрытых процессов. Только процессы, на просмотр которых у вас нет прав (безопасности).
Процесс, запущенный от имени администратора (в Vista / Win7 / Win2k8 должен быть повышен), всегда сможет видеть все процессы.
Однако консольное приложение, в котором перечислены процессы, вполне может завершиться до обновления дисплея диспетчера задач и, таким образом, не будет отображаться. Это вероятно с простой программой, даже если скорость обновления установлена на «высокую».
Вам нужно поддерживать свой процесс, пока диспетчер задач не обновит свое отображение. Самый простой способ - добавить следующие операторы в конец вашего метода Main:
Console.Write("Press ENTER to exit");
Console.ReadLine();