Попытка получить исполняемый путь процесса возвращает ноль
У меня есть фрагмент кода на 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;
}
}
В общем, я хочу знать, как я могу получить путь исполняемого файла процесса, который я хочу.