Instrumentation (Management Events)

System.Management namespace’i altında bulunan sınıflar ile sistem araçlarını ve uygulamalarını ve WMI (Windows Management Instrumentation) ‘ı yönetebiliriz. DirectoryObjectSearher ile WMI kaynaklarına programatik olarak erişmemiz mümkündür. Bu arama işlemi SQL sorgularına benzer bir sintaks ile yapılır.

 

Aşağıdaki fonksiyona bir sorgu verilerek işletim sistemine,harddiske,memory e kısacası sistem kaynaklarını bir listview içerisine doldurabiliriz.

public static void ListObjects(string query,ManagementObjectSearcher mos,ListView lv)

{

    try

    {

        lv.Items.Clear();

        lv.Visible = true;

        mos.Query = new ObjectQuery(query);

 

        foreach (ManagementObject mo in mos.Get())

        {

            foreach (PropertyData pd in mo.Properties)

            {

                if (mo[pd.Name] != null)

                {

                ListViewItem lvi = new ListViewItem();

                ListViewItem.ListViewSubItem lvi2 = new ListViewItem.ListViewSubItem();

                vi.Text = pd.Name + " : "+ pd.Value;

                lv.Items.Add(lvi);

 

                lvi2.Text = mo[pd.Name].ToString();

                lvi.SubItems.Add(lvi2);

                        }

                    }

                }

            }

    catch (Exception ex)

    {

        MessageBox.Show(ex.StackTrace);

    }

}


//İşletim sistemi bilgilerini almak

ManageClass.ListObjects("SELECT * FROM Win32_OperatingSystem", mos, listView1);
//Bilgisayar bilgilerini almak

ManageClass.ListObjects("SELECT * FROM Win32_ComputerSystem", mos, listView1);
//İşlemci bilgilerini almak

ManageClass.ListObjects("SELECT * FROM Win32_processor", mos, listView1);
//Bios bilgilerini almak

ManageClass.ListObjects("SELECT * FROM Win32_bios", mos, listView1);
//Timezone bilgilerini almak

ManageClass.ListObjects("SELECT * FROM Win32_timezone", mos, listView1);
//Memory bilgilerini almak

ManageClass.ListObjects("SELECT * FROM Win32_LogicalMemoryConfiguration", mos, listView1);
//Video Controller bilgilerini almak

ManageClass.ListObjects("SELECT * FROM Win32_VideoController", mos, listView1);

//C,D,E gibi mantıksal disk bilgilerini almak

ManageClass.ListObjects("SELECT * FROM Win32_LogicalDisk WHERE DriveType=3", mos, listView1);

 

 

//Sistemdeki Duran Servisleri listelemek

List<string> collection =new List<string>();

ManagementObjectSearcher searcher =

    new ManagementObjectSearcher("SELECT * FROM Win32_Service WHERE State='Paused'");

foreach(ManagementObject obj in searcher.Get())

{

        collection.Add(obj["DisplayName"].ToString());

}

Yorum Yaz
Arkadaşların Burada !
Arkadaşların Burada !