0

WindowsMo​​bileデバイスのMACアドレスを取得する必要があります。.NET Compact Frameworkだけで、たとえばOpenNetCFを使用せずにこれを行うことは可能ですか?解決策はC#(Visual Studio 2008、スマートデバイスプロジェクト)にあります。

.NETのネットワークアダプタからMACアドレスを読み取るを読んだ後、 plinthで例を使用したかったのですが、デバイスにkernel32.dllがありませんでした。

.NET Compact FrameworkでMACアドレスを取得する別の方法はありますか、または次の方法を置き換える方法はありますか?

     [DllImport("Kernel32.dll", EntryPoint = "CopyMemory")]
     private static extern void ByteArray_To_IPAdapterInfo(ref AdapterInfo dst, Byte[] src, int size);
     [DllImport("Kernel32.dll", EntryPoint = "CopyMemory")]
     private static extern void IntPtr_To_IPAdapterInfo(ref AdapterInfo dst, IntPtr src, int size);
4

1 に答える 1

0

MACアドレスを取得したいが、OpenNETCFのSDFのようなライブラリを使用しない場合は、独自のコードで行うのと同じことを行う必要があります。GetAdaptersInfo次のように、P/Invokeを実行する必要があります。

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

サイズを取得するために最初のパラメータで一度呼び出してからnull、適切なサイズのバイト配列を割り当てて呼び出します。構造体の配列で埋めIP_ADAPTER_INFOられ、システム内のアダプターごとに解析されます。メンバーは、AddressMACアドレスを求めているものです。

于 2012-07-06T14:13:55.283 に答える