使用C#检索完整的进程列表

时间:2009-03-01 11:33:25

标签: c# windows process

我正在尝试编写一个C#程序来检索完整的进程列表。但是我发现一个应用程序打开一个窗口,但我没有在Windows任务管理器的进程选项卡中看到它,我在任务选项卡中看到它。另外,我也无法使用我的C#代码获取其信息。

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

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

我浏览了很多论坛,但我只能找到隐藏进程的方法,而且我找不到任何显示隐藏进程的方法。有谁知道如何检索隐藏的过程信息?

3 个答案:

答案 0 :(得分:5)

Windows上没有隐藏进程。只有您没有(安全)权限的流程才能查看。

以管理员身份运行的进程(在Vista / Win7 / Win2k8中需要升级)将始终能够查看所有进程。

但是,列出进程的控制台应用程序可能会在任务管理器的显示刷新之前退出,因此将无法看到。即使将更新速度设置为“高”,也可以使用简单的程序。

您需要保持流程,直到任务管理器更新其显示。最简单的方法是在Main方法的末尾添加以下语句:

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

答案 1 :(得分:0)

我不确定你的意思。上面的代码列出了与pslist相同数量的进程。当你谈到隐藏进程的方法时,你在谈论root工具包吗?如果是这样,他们通常通过更改list命令的工作方式来工作。即实际上正在枚举这些进程,但不会向用户显示该信息。

答案 2 :(得分:0)

它可以正常工作,只需添加:

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

结束或使用ctrl + F5启动项目