2011-02-14 72 views
5

有點搜索返回這個結果:Which processes are running managed code and which version?如何確定是否在C#中管理進程?

但是我想知道是否有一個'更好'的方式,然後只是迭代,雖然加載模塊?看起來有點奇怪,查找字符串「mscorwks.dll」。閱讀儘管MSDN上的Process Class似乎並未指出明顯的解決方案。

假設而

  1. .NET 4.0
  2. 我有一個 「過程」 在手

謝謝

+0

定義「託管代碼」。 Java被管理,解釋語言也被管理。您是否對.NET程序集或任何類型的託管代碼特別感興趣? – 2011-02-14 22:29:28

+0

我不認爲它很古怪。這是核心庫dll的文件名。 – Amy 2011-02-14 22:30:23

回答

5

對於任何未來的Google:我結束了使用貼在這裏How to check if a program is using .NET?建議的答案

Process mProcess = //Get Your Process Here 
foreach (ProcessModule pm in mProcess.Modules) 
{ 
    if (pm.ModuleName.StartsWith("mscor", StringComparison.InvariantCultureIgnoreCase)) 
    { 
     return true; 
    } 
} 

順便尋找「mscorwks(感謝0xA3執行!)。如我在原來的帖子中提到的「dll」不適用於.NET 4.0。

1

在代碼中,獲得執行過程的完整路徑。 嘗試在流程上使用Assembly.Load。如果成功,這是一個.NET程序集:)

相關問題