2010-12-17 32 views
0

是否可以確定Microsoft .NET程序是否在Windows計算機上運行?如何查看.NET程序是否正在運行

+0

你的意思是一個特定的程序,你知道這個名字或任何運行在.Net的計算機上的程序嗎? – 2010-12-17 14:57:58

+0

您的程序或任何.net程序? – jgauffin 2010-12-17 14:58:10

+0

並且它是否在Windows上運行,或者它是否運行? – Dykam 2010-12-17 15:02:34

回答

2

如果你正試圖確定過程/是明確的,以.NET應用程序,你應該尋找的過程,是專門針對.NET框架內的依賴性/模塊。

下面我使用的是mscorlib,因爲它是我想到的第一個,因爲我的提示確定該進程依賴於.NET框架。例如

 var processes = Process.GetProcesses(); 
     foreach (var process in processes) 
     { 
      try 
      { 
       foreach (var module in process.Modules) 
       { 
        if (module.ToString().Contains("mscorlib")) 
        { 
         Console.WriteLine(process); 
         break; 
        } 
       } 
      } 
      catch { // Access violations } 
     } 

這不是防彈,因爲某些進程不能因爲訪問限制他們的模塊枚舉,但如果你運行它,你會看到,它會拉回來.NET依賴過程。也許它會給你一個很好的起點讓你朝着正確的方向思考。

2

如果有一個或多個正在運行的具有提供名稱的進程,以下代碼將返回true。

public bool IsProcessRunning(string processName) 
    { 
     return Process.GetProcessesByName(processName).Length != 0; 
    } 
相關問題