Есть одна хитрость, которую я однажды узнал из списка вопросов для интервью Скотта Хансельмана . Вы можете легко перечислить все программы с .NET в командной строке, используя:
tasklist /m "mscor*"
В нем будут перечислены все процессы, которые имеют mscor*
среди своих загруженных модулей.
Мы можем применить тот же метод в коде:
public static bool IsDotNetProcess(this Process process)
{
var modules = process.Modules.Cast<ProcessModule>().Where(
m => m.ModuleName.StartsWith("mscor", StringComparison.InvariantCultureIgnoreCase));
return modules.Any();
}