2014-08-28 36 views
1

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; 

我知道我可以捕獲該異常,但我要尋找一個更好的解決方案

回答

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(); 
     } 
    } 
} 
相關問題