消息关闭
    暂无新消息!
 目前呢,已经可以获取Mac地址,但是是在联网的情况下,如果网络没有连接的话,获取到的Mac地址不对。

[DllImport("Iphlpapi.dll", EntryPoint = "SendARP")]
private static extern uint SendARP(uint DestIP, uint SrcIP, byte[] pMacAddr, ref uint PhyAddrLen);

请问还有别的方法吗?

8个回答

︿ 3
你具体是什么情况,程序不在wince上?不在没联网获取什么?谁也没有办法了
如果在用什么snedarp,我都没看懂了。wince的网卡地址正常都是保存在注册表,直接读就行。就算不是你参考ipconfig过程,直接获取本地信息就行了。
︿ 1
很多人都是在注册表写入的,为了防止冲突,通常会有一个小软件每次写入都不一样的。有些人才会硬件保存的,但是这种方式很麻烦,据我所知硬件读mac 的wince 标准api 貌似真没有,直接读注册表即可,看看dm9000 的驱动和注册表部分就可以看出来。
︿ 1
程序在wince6.0下,怎么获取mac地址?
说是通过注册表,如果注册表中没有写呢?读出来不就是空的?
通过ipconfig过程,怎么获取到mac地址?
︿ 1
从注册表读mac地址这个有标准的api,如果你们采用特殊做法你就按你们自己的去处理。
ipconfig代码在WINCE600\PUBLIC\COMMON\OAK\DRIVERS\NETSAMP\IPCONFIG中。
就是用GetAdaptersAddresses函数获取。
︿ 0
可以考虑读取CPU的唯一chip ID, 实现kernel device ioctl 接口将cpu的chip id寄存器读出来即可