我正在尝试在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上出现“无效查询”错误。 According to MSDN,Windows 2000及更高版本支持Win32_Process对象,所以我不确定我做错了什么。任何帮助将不胜感激。
答案 0 :(得分:1)
对不起大家。我刚刚意识到“CommandLine”字段仅适用于Windows XP及更高版本。问题解决了。