Не находит дескриптор файла процесса

Пробую найти все названия дескрипторов процессов, но не все находит, максимум 1/2 процесса и всё. Вот код для поиска:

try
{
  foreach (Process proc in Process.GetProcesses())
  {
    try
    {
      if (proc.MainModule.FileVersionInfo.FileDescription.ToLower()
      {
         Console.WriteLine("Найден дескриптор процесса: " + proc);
      }
    }
    catch {continue;}
  }
}
catch { }

Подскажите как получить все дескрипторы процессов?


Ответы (1 шт):

Автор решения: frozencoast

Вероятные проблемы:

  • Доступ к процессу ограничен
  • Попытка доступа к 64-битному процессу из 32-битного приложения

В вашем коде игнорируются исключения, которые могут указать на причину того, почему процесс пропускается. Попробуйте следующий код, вместо отсутствующих процессов вы увидите сообщения об ошибках, если таковые имеются:

try
{
    foreach (Process proc in Process.GetProcesses())
    {
        try
        {
            if (!string.IsNullOrEmpty(proc.MainModule.FileVersionInfo.FileDescription))
            {
                Console.WriteLine("Найден дескриптор процесса: {0}", proc.MainModule.FileVersionInfo.FileDescription);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
}
catch { }
→ Ссылка