2014-08-28 4 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(); 
     } 
    } 
}