摘要: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