我有一段C#代码遍历所有正在运行的进程,找到一个特定的代码,并获取其ExecutablePath。问题是,虽然它设法找到想要的进程,但尝试获取ExecutablePath会返回null。
现在,我对此进行了更多的实验,结果发现代码获取路径的某些进程,其他的返回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;
}
}
总而言之,我想知道的是如何获得我想要的进程的可执行文件路径。