コンパクト フレームワークのみを使用して MAC アドレスを取得するにはどうすればよいですか?
4 に答える
OpenNETCF コードの 1.4 は、次の P/Invoke 呼び出しから情報を取得します。
[DllImport ("iphlpapi.dll", SetLastError=true)]
public static extern int GetAdaptersInfo( byte[] ip, ref int size );
物理アドレス(MACアドレスとして返される)は、呼び出し後のバイト配列のインデックス400〜408程度だと思います。したがって、OpenNETCF を使用したくない場合は、それを直接使用することができます (なぜですか? OpenNETCF は石のヘンジ以上のものを揺るがします!)
素晴らしい P/Invoke.net は、ここで完全な例を示しています。
ああ、あなたの質問に適切に答えるために:
Compact Framework のみを使用する
できません。それがCFの人生です。楽しみたい場合は、ソケットを使用してタイムアウトで同期的にデータを送信してみてください。:D
「コンパクト フレームワークの MACアドレス:
- http://arjunachith.blogspot.com/2007/08/retriving-mac-address-in-compact.html
- http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=920417&SiteID=1
- http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=188787&SiteID=1
それらのどれも役に立ちませんでしたか?
3 人中 2 人が、それを行う方法としてOpenNETCFを指摘しています。
レジストリにアクセスできる場合は、LOCAL_MACHINE\Comm\PCI\***\Parms\MacAddress
.
これは、WMI や OpenNETCF の使用を伴わない、手っ取り早いソリューションかもしれません ...
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