2011-07-19 275 views
1

在C#中,我使用下面的代碼:本地計算機上的GetProcesses導致「無法連接到遠程計算機」。

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

導致:

InvalidOperationException異常:無法連接到遠程計算機。

注:

  • 操作系統:Windows 7 64位
  • 試圖連接到遠程計算機。
  • 遠程註冊表服務設置爲自動開始

任何想法,爲什麼我收到這個錯誤,我該如何解決?

+1

你必須使用Process.GetProcessesByName()代替。 –

+1

看到這篇文章一次http://stackoverflow.com/questions/6655375/is-there-a-way-to-get-a-list-of-processes-running-on-a-local-virtual-machine – Rahul

+0

Both評論與我遇到的問題有關,謝謝! – Anders

回答

2

根據http://msdn.microsoft.com/en-us/library/x8b2hzk8.aspx該調用嘗試連接到計算機名稱「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); 
2

你以爲你是指定進程名稱上所有的「firefox.exe」進程,但你實際上是指定機器名稱。

Process[] Process.GetProcesses(string machineName); 

希望這有助於 約翰

2

試試這個下面的代碼

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

刪除該.exe

Process process = Process.GetProcess("firefox"); 
相關問題