Попытка получить исполняемый путь процесса возвращает ноль

У меня есть фрагмент кода на C#, который проходит через все запущенные процессы, находит конкретный и получает свой ExecutablePath. Проблема в том, что, хотя ему удается найти требуемый процесс, попытка получить ExecutablePath возвращает значение NULL.

Теперь я провел еще несколько экспериментов по этому вопросу, и оказалось, что для некоторых процессов код получает путь, для других он возвращает ноль, и это кажется произвольным, потому что я не могу найти какую-либо корреляцию между процессом и возвращает ли он путь.

Код в порядке, но здесь это в любом случае:

    string path = null;
    string processNameLowerCase = processName.ToLower() + ".exe";
    ManagementClass managementClass = new ManagementClass("Win32_Process");
    ManagementObjectCollection managementObjects = managementClass.GetInstances();
    foreach (ManagementObject managementObject in managementObjects) {
        string managedProcessNameLowerCase = ((string)managementObject["Name"]).ToLower();
        if (managedProcessNameLowerCase.StartsWith(processNameLowerCase)) {
            path = (string)managementObject["ExecutablePath"];
            break;
        }
    }

В общем, я хочу знать, как я могу получить путь исполняемого файла процесса, который я хочу.

0 ответов

Другие вопросы по тегам