.NET提供了幾個類別用於取得WMI所管理的資訊,
其中包含了硬體資訊和系統資訊。
接下來說明如何取得網卡上的位址(MAC Address)
1.首先透過ManagementObjectSearcher執行WQL(WMI Query Language)
2.使用ManagementObjectCollection取得查詢回傳的集合
3.最後使用ManagementObject來逐一分析比對,取得所要的資料。
Sample:
ManagementObjectSearcher query = new ManagementObjectSearcher(@"SELECT * FROM Win32_NetworkAdapter "); ManagementObjectCollection queryCollection = query.Get(); foreach (ManagementObject mo in queryCollection) { Console.WriteLine(mo["MacAddress"].ToString().Replace(":", "")); }做到這邊想必會想說如何取得MacAddress這個Properties吧!
下面的程式可以取得這個ManagementObject所有的Properties這樣就能逐一找到需要的Properties了。
foreach (PropertyData prop in mo.Properties) { if (prop.Value!= null) Console.WriteLine("{0}: {1}", prop.Name, prop.Value); }
參考出處:
1.Find only physical network adapters with WMI Win32_NetworkAdapter class
2.http://msdn.microsoft.com/en-us/library/aa394606(VS.85).aspx
3.http://stackoverflow.com/questions/1525320/how-to-enumerate-audio-out-devices-in-c-sharp
沒有留言:
張貼留言