2008-09-03 75 views

回答

0

增加提及System.Management.dll和使用這樣的:

Dim mc As System.Management.ManagementClass 
Dim mo As ManagementObject 
mc = New ManagementClass("Win32_NetworkAdapterConfiguration") 
Dim moc As ManagementObjectCollection = mc.GetInstances() 
For Each mo In moc 
    If mo.Item("IPEnabled") = True Then 
     ListBox1.Items.Add("MAC address " & mo.Item("MacAddress").ToString()) 
    End If 
Next 
+3

淨CF(Compact Framework的)不具有`System.Management`命名空間。 – Trisped 2013-03-12 00:55:48

5

的OpenNETCF代碼的1.4得到從以下P中的信息/調用呼叫:

[DllImport ("iphlpapi.dll", SetLastError=true)] 
    public static extern int GetAdaptersInfo(byte[] ip, ref int size); 

物理地址(返回爲MAC地址),我認爲是圍繞約索引400 - 後字節數組408電話。所以你可以直接使用它,如果你不想使用OpenNETCF(爲什麼?OpenNETCF不止石頭!)

Wonderful P/Invoke.net給出了一個完整的例子here

哦,正確回答你的問題:

只能使用Compact Framework的

你不能。這是CF的生活,如果你想要一些樂趣嘗試發送數據與套接字同步超時。 :D

0

如果您可以訪問註冊表,請嘗試在LOCAL_MACHINE\Comm\PCI\***\Parms\MacAddress下查找您的適配器MAC地址。

這可能是一個快速和骯髒的解決方案,不涉及使用WMI或OpenNETCF的...

+1

這將是一個完整的運氣情況,如果它在那裏。我剛剛檢查了4個設備,其中一個實際上有一條PCI總線,並且沒有一個在註冊表中有MacAddress。查詢NDIS的價值是獲得這個的唯一可靠方法。 – ctacke 2009-01-08 14:22:04