C#透過WMI得取無線網路資訊 Access Point Information

摘要:C#透過WMI得取無線網路資訊 Access Point Information

「Windows Management Instrumentation」(WMI) 是 Windows 作業系統的元件,它可讓您以程式設計的方式存取企業環境中的管理資料。.NET Framework 中的 WMI 建置於原始 WMI 技術之上,讓應用程式和提供者的相同開發工作,擁有在 .NET Framework 中進行程式設計的優點。 

筆者準備了一個簡單的WMI應用範例,今天要介紹給各位 Visual C# 透過WMI取得無線網路資訊。

Access Point Information

※注意:此範例會使用到System.Management命名空間,所以須先將System.Management加入參考。

    1 using System;

    2 using System.Collections.Generic;

    3 using System.Text;

    4 using System.Management;

    5 

    6 namespace ConsoleApplication1

    7 {

    8     class Program

    9     {

   10         static void Main(string[] args)

   11         {

   12             try

   13             {

   14                 string strSSID;

   15 

   16                 ManagementObjectSearcher mObjSearch = new ManagementObjectSearcher("root\\WMI",

                       "SELECT * FROM MSNdis_80211_BSSIList");

   17                 ManagementObjectCollection mObjColl = mObjSearch.Get();

   18                 ManagementObjectCollection.ManagementObjectEnumerator mObjEnum =

                       mObjColl.GetEnumerator();

   19 

   20                 mObjEnum.MoveNext();

   21 

   22                 Console.WriteLine("無線網路介面: " + mObjEnum.Current.Properties["InstanceName"].Value);

   23                 Console.WriteLine("可用無線網路: " + mObjEnum.Current.Properties["NumberOfItems"].Value);

   24                 ManagementBaseObject[] objarr = (ManagementBaseObject[])mObjEnum.Current.Properties

                       ["Ndis80211BSSIList"].Value;

   25 

   26                 foreach (ManagementBaseObject queryObj in objarr)

   27                 {

   28                     Console.WriteLine("網路名稱 SSID:" + Encoding.ASCII.GetString((byte[])queryObj.Properties

                                                       ["Ndis80211Ssid"].Value));

   29 

   30                 }

   31             }

   32             catch (ManagementException ex)

   33             {

   34                 Console.WriteLine("Error:" + ex.Message);

   35             }

   36             Console.Read();

   37         }

   38     }

   39 }

 

 

關於System.Management

http://msdn2.microsoft.com/zh-tw/library/system.management(VS.80).aspx