WMI | Engin Polat\'ın Windows 8 , Windows Phone 8 ve C# içerikli programcılık sitesi

Arşiv

Etiketlenen yazılar WMI

C# WMI Örnekler – 1

31 October 2010 2 yorum

Bilgisayardaki Paylaşılan Dizinleri listelemek için; (Win32_Share sınıfını kullanır)

ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from win32_share");
foreach (ManagementObject mo in mos.Get())
{
	Console.WriteLine("Dizin : {0}", mo["Name"]);
}

Bilgisayarda Elle Başlatılan ve Çalışan Servisleri listelemek için; (Win32_Service sınıfını kullanır)

ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_Service Where State='Running' AND StartMode='Manual'");
foreach (ManagementObject mo in mos.Get())
{
	Console.WriteLine("Servis : {0}", mo["Name"]);
}

Bilgisayarda o anda Çalışmakta olan Process‘leri listelemek için; (Win32_Process sınıfını kullanır)

ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_Process");
foreach (ManagementObject mo in mos.Get())
{
	Console.WriteLine("Process : {0}", mo["Name"]);
}

Bilgisayarda bulunan İşlemcileri (CPU) listelemek için; (Win32_Processor sınıfını kullanır)

ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * from Win32_Processor");
foreach (ManagementObject mo in mos.Get())
{
	Console.WriteLine("Process : {0}", mo["Name"]);
}

Win32 sınıflarının tamamına ve özelliklerine MSDN‘deki Win32 Classes sayfasından ulaşabilirsiniz.

Bilgisayarın WIFI sinyal seviyesini göstermek için; (Technet‘teki makaleden alıntıdır.)

ManagementObjectSearcher mos = new ManagementObjectSearcher(@"root\WMI", "select * from MSNdis_80211_ReceivedSignalStrength");
foreach (ManagementObject mo in mos.Get())
{
	Console.WriteLine("", mo["Ndis80211ReceivedSignalStrength"]);
}

Notebook’ta Kalan Pil Süresini göstermek için; (SystemInformation sınıfını kullanır)

Console.WriteLine("Kalan pil yüzdesi : {0}", SystemInformation.PowerStatus.BatteryLifePercent);

Console.WriteLine("Kalan pil süresi : {0}", SystemInformation.PowerStatus.BatteryLifeRemaining);

Paylaşımda Olan Dizinleri Bulmak ( C# + VB.NET )

13 November 2009 Yorum yapılmamış

Bilgisayarda paylaşımda olan klasörleri bulmamız gerektiğinde WMI sorgusu çalıştırmamız gerekir.

WMI (Windows Management Instrumentation) hakkında daha detaylı bilgiye MSDN üzerindeki bu kaynaktan ulaşabilirsiniz.

WMI sorgusu çalıştırmak için öncelikle System.Management.dll’i projemize referans göstermeliyiz.

PaylasimdaOlanDizinler_Referans

System.Management.dll’i projeye referans gösterdikten sonra form üzerine bir Listbox, bir de Button ekleyip, butonun click event’ine aşağıdaki kodu yazıyoruz;

C# Code :

    private void btnDizinleriListele_Click(object sender, EventArgs e)
    {
      //WMI sorgusu çalıştırıyoruz.
      ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_Share");

      //Win32_Share classı :
      /*
        class Win32_Share : CIM_LogicalElement
        {
          uint32   AccessMask;
          boolean  AllowMaximum;
          string   Caption;
          string   Description;
          datetime InstallDate;
          uint32   MaximumAllowed;
          string   Name;
          string   Path;
          string   Status;
          uint32   Type;
        };
       */
      foreach (ManagementObject dizin in mos.Get())
        lbDizinler.Items.Add(string.Format("Dizin : {0}\\{1} ({2})", dizin["Path"], dizin["Name"], dizin["Description"]));
    }

VB.NET Code :

  Private Sub btnDizinleriListele_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDizinleriListele.Click
    'WMI sorgusu çalıştırıyoruz.
    Dim mos As New ManagementObjectSearcher("SELECT * FROM Win32_Share")

    'Win32_Share classı :
    'class Win32_Share : CIM_LogicalElement
    '{
    ' uint32   AccessMask;
    ' boolean  AllowMaximum;
    ' string   Caption;
    ' string   Description;
    ' datetime InstallDate;
    ' uint32   MaximumAllowed;
    ' string   Name;
    ' string   Path;
    ' string   Status;
    ' uint32   Type;
    '};
    For Each dizin As ManagementObject In mos.Get()
      lbDizinler.Items.Add(String.Format("Dizin : {0}\\{1} ({2})", dizin("Path"), dizin("Name"), dizin("Description")))
    Next
  End Sub

 

ManagementObjectSearcher class’ının constructor’ına SELECT * FROM Win32_Share yazdığımıza dikkat edin.

Win32_Share class’ı hakkında daha detaylı bilgiye MSDN üzerinde yeralan bu kaynaktan ulaşabilirsiniz.

C# için kaynak kodlar : PaylasimdaOlanDizinler_C#.zip
VB.NET için kaynak kodlar : PaylasimdaOlanDizinler_VB.zip