26 Temmuz 2009 Pazar

ManagementObjectSearcher ile bir kod örneği

ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_Processor");

Öncelikle yukarıdaki kod ile sorgumuzu belirterek bir ManagementObjectSearcher nesnesi örnekliyoruz. Sonrasında aşağıdaki şekilde örneklediğimiz nesne üzerinden Get methodunu çağırarak sorgumuzu çalıştırıyoruz ve Get methodundan geriye dönen donanım bilgisini ManagementObjectCollection tipinden bir değişken ile karşılıyoruz.

ManagementObjectCollection mocol = mos.Get();

Nesne üzerindeki belli bir bilgiyi elde etmek istediğimizde, elimizdeki kolleksiyon için bir döngü hazırlarız ve döngü içerisinde her bir ManagementObject nesnesine ait işlem gerçekleştirebiliriz. Aradığımız bilginin hangi property üzerinde yer aldığını biliyorsak aşağıdaki gibi bir kullanımla, ilgili property'ye ait değeri elde edebiliriz.

foreach(ManagementObject mo in mocol)
{
Console.WriteLine(mo.Properties["ProcessorId"].Value);
}

Eğer belli bir bilgi değil de nesneye ait tüm bilgileri elde etmek istiyorsak ve bilgilerin hangi property'ler üzerinde yer aldıklarını bilmiyorsak, aşağıdaki gibi bir kullanımla nesnenin properties kolleksiyonunda dönerek PropertyData tipinden her bir üye için Name ve Value değerlerini elde edip işlem gerçekleştirebiliriz.

foreach(ManagementObject mo in mocol)
{
foreach(PropertyData pd in mo.Properties)
{
Console.WriteLine(string.Format("{0}: {1}", pd.Name,pd.Value ));
}
}

Hiç yorum yok: