无法获取正在运行/当前进程的列表?

时间:2012-01-20 14:37:32

标签: c# session process

我试图使用以下代码在Win7上获取正在运行的进程/会话列表,该代码位于Internet中。但它不起作用?我没有任何编译错误。

namespace CurrentProcessesLister
{
   class Program
   {
      static void Main(string[] args)
      {
          Process[] runningProcesses = Process.GetProcesses();
          var currentSessionID = Process.GetCurrentProcess().SessionId; 
          Process[] sameAsthisSession = (from c in runningProcesses where c.SessionId ==    currentSessionID select c).ToArray(); 

          foreach (var p in sameAsthisSession) 
          { 
              Trace.WriteLine(p.ProcessName); 
          }
      }
  }
}

4 个答案:

答案 0 :(得分:7)

  

“控制台中没有输出”

然后替换

Trace.WriteLine(p.ProcessName); 

Console.WriteLine(p.ProcessName); 

但如果你还没有看到任何东西,那么就该开始使用调试器了。

答案 1 :(得分:1)

问题是您使用Trace.WriteLine输出文本。这用于程序跟踪,默认情况下不会在控制台中显示。请改用Console.WriteLine

  foreach (var p in sameAsthisSession) 
  { 
      Console.WriteLine(p.ProcessName); 
  }

答案 2 :(得分:1)

这是一种快速而又脏的方式......

  Process[] proc = Process.GetProcesses();
  foreach(Process theprocess in proc)
  {
    Console.WriteLine("Process: {0} ID: {1}", theprocess.ProcessName, theprocess.Id);
  }

答案 3 :(得分:0)

为了进一步扩展之前的帖子提到的内容,跟踪输出确实显示,但您需要查看Visual Studio中的调试器输出窗口。您最初发布的代码确实列出了输出窗口中Debug部分下的进程。

  

'ConsoleApplication1.Program ..''ConsoleApplication1.vshost.exe'   (管理(v4.0.30319)):已加载   'C:\ Windows \ Microsoft.Net \组件\ GAC_MSIL \ System.Configuration \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ System.Configuration.dll',   跳过加载符号。模块已优化并具有调试器选项   “Just My Code”已启用   devenv的
  Winlogon中   等...