WMI查询 - 使用并非所有操作系统都可用的属性
问题描述:
Propery Win32_OperatingSystem\OSArchitecture
在Windows 7上可用,但在Windows XP上不可用。我使用WMI代码生成器进行了检查。我应该如何更改下面的代码才能在两个操作系统上运行(Win XP和Win 7)?WMI查询 - 使用并非所有操作系统都可用的属性
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();
}
}
}