実行中のすべてのプロセスを通過し、特定のプロセスを見つけて、その ExecutablePath を取得する C# コードがあります。問題は、目的のプロセスを見つけることができても、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;
}
}
全体として、私が知りたいのは、必要なプロセスの実行可能ファイルのパスを取得する方法です。