WMI错误使用C#一个简单的查询(WMI error with a simple query in

2019-09-30 05:11发布

我试图在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及更高版本,所以我不知道我做错了。 任何帮助将非常感激。

Answer 1:

对不起大家。 我刚刚意识到“的CommandLine”字段仅在Windows XP及更高版本。 问题解决了。



文章来源: WMI error with a simple query in C#
标签: c# wmi