【问题标题】:WMI Queries - use property which is not available in all operating systemsWMI 查询 - 使用并非在所有操作系统中都可用的属性
【发布时间】:2014-08-28 11:12:25
【问题描述】:

Win32_OperatingSystem\OSArchitecture 属性在 Windows 7 上可用,但在 Windows XP 上不可用。我使用 WMI 代码生成器检查了这一点。我应该如何更改以下代码以在两种操作系统(Win XP 和 Win 7)上工作?

ObjectQuery objectQuery = new ObjectQuery("SELECT OSArchitecture FROM Win32_OperatingSystem");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(objectQuery);
if (searcher.Get().Count == 0) // this line throw exception on Windows XP
    return null;

我知道我可以捕获异常,但我正在寻找更好的解决方案

【问题讨论】:

    标签: c# wmi-query


    【解决方案1】:

    这对我有用:

    string strOSArchitecture = "";
    ObjectQuery objectQuery = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
    ManagementObjectSearcher searcher = new ManagementObjectSearcher(objectQuery);
    ManagementObjectCollection results = searcher.Get();
    
    foreach (ManagementObject result in results)
    {
       foreach (PropertyData property in result.Properties)
       {
          else if (property.Name.Equals("OSArchitecture"))
          {
             strOSArchitecture = result["OSArchitecture"].ToString();
          }
       }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 2013-06-22
      相关资源
      最近更新 更多