如何确定进程是否在C#中管理?

一些搜索返回此结果:Which processes are running managed code and which version?

但是,我想知道是否有一种“更好”的方式,然后简单地迭代加载的模块?寻找字符串“mscorwks.dll”似乎有点古怪.通过MSDN上的Process Class阅读似乎没有指出一个明显的解决方案.

做出的假设

> .NET 4.0
>我手头有一个“过程”

谢谢

最佳答案
对于任何未来的Google员工:我最终使用此处发布的建议答案How to check if a program is using .NET?(感谢0xA3!)

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

另外,在我的原始帖子中提到的“mscorwks.dll”不适用于.NET 4.0.

转载注明原文:如何确定进程是否在C#中管理? - 代码日志