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;
Я знаю, что могу поймать исключение, но я ищу лучшее решение
Это работает для меня:
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();
}
}
}