本地计算机上的GetProcesses导致“无法连接到远程计算机”。

时间:2011-07-19 18:38:56

标签: c# visual-studio-2010

在c#中,我使用以下代码:

Process[] processes = Process.GetProcesses("firefox.exe");
Console.WriteLine(processes.Length);

结果是:

  

InvalidOperationException:无法连接到远程计算机。

注意:

  • 操作系统:Windows 7,64位
  • 尝试连接到远程计算机。
  • 远程注册表服务设置为自动并且已启动

有关为什么我会收到此错误以及如何解决此问题的任何想法?

4 个答案:

答案 0 :(得分:3)

根据http://msdn.microsoft.com/en-us/library/x8b2hzk8.aspx,此调用尝试连接到计算机名“firefox.exe”并从那里检索进程,因此异常。

编辑:

假设您想在本地计算机上找到所有“firefox.exe”进程

List<Process> ListOfFireFox = new List<Preocess>();
foreach (P in Process.GetProcesses())
{
    if ( P.ProcessName.ToLower() == "firefox.exe" )
         ListOfFireFox.Add (P);
};

Console.WriteLine(ListOfFireFox.Count);

答案 1 :(得分:2)

您认为您正在指定进程名称,但实际上是在指定计算机名称。

Process[] Process.GetProcesses(string machineName);

希望这有帮助, 约翰

答案 2 :(得分:2)

尝试以下代码

Process[] processes = Process.GetProcessByName("firefox.exe");
Console.WriteLine(processes.Length);

答案 3 :(得分:-1)

删除.exe

Process process = Process.GetProcess("firefox");