Запросы WMI - использовать свойство, которое доступно не во всех операционных системах

1

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;

Я знаю, что могу поймать исключение, но я ищу лучшее решение

Теги:
wmi-query

1 ответ

0

Это работает для меня:

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();
      }
   }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню