我试图在Windows 2000上使用此代码:
foreach (Process p in Process.GetProcesses())
{
if (p.MainModule.FileName.EndsWith("calc.exe"))
{
using (ManagementObjectSearcher mos =
new ManagementObjectSearcher(
"SELECT CommandLine,ExecutablePath
FROM Win32_Process WHERE ProcessId=" + p.Id.ToString()))
{
using (ManagementObjectCollection moc = mos.Get())
{
foreach (ManagementObject mo in moc)
{
MessageBox.Show((string)mo["CommandLine"]);
return;
}
}
}
}
}
这适用于Windows XP及更高版本,但有一个“无效查询”错误失败在Windows 2000上。 根据MSDN的Win32_Process的对象支持在Windows 2000及更高版本,所以我不知道我做错了。 任何帮助将非常感激。