有点搜索返回这个结果:Which processes are running managed code and which version?如何确定是否在C#中管理进程?
但是我想知道是否有一个'更好'的方式,然后只是迭代,虽然加载模块?看起来有点奇怪,查找字符串“mscorwks.dll”。阅读尽管MSDN上的Process Class似乎并未指出明显的解决方案。
假设而
- .NET 4.0
- 我有一个 “过程” 在手
谢谢
有点搜索返回这个结果:Which processes are running managed code and which version?如何确定是否在C#中管理进程?
但是我想知道是否有一个'更好'的方式,然后只是迭代,虽然加载模块?看起来有点奇怪,查找字符串“mscorwks.dll”。阅读尽管MSDN上的Process Class似乎并未指出明显的解决方案。
假设而
谢谢
对于任何未来的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。
在代码中,获得执行过程的完整路径。 尝试在流程上使用Assembly.Load
。如果成功,这是一个.NET程序集:)
定义“托管代码”。 Java被管理,解释语言也被管理。您是否对.NET程序集或任何类型的托管代码特别感兴趣? – 2011-02-14 22:29:28
我不认为它很古怪。这是核心库dll的文件名。 – Amy 2011-02-14 22:30:23