我有一段 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;
}
}
总而言之,我想知道的是如何获得我想要的进程的可执行文件路径。