主要使用的技术: SimpleWifi,MahaApp.Metro控件
方法A
通过API SELECT * FROM Win32_NetworkAdapterConfiguration
获取网卡列表
方法B
调用NetworkInterface.GetAllNetworkInterfaces()
返回本地计算机上的网络接口对象
**方法B相比于方法A的区别在于方法B只能找出启用的网卡对象,而方法A可以获取全部的网卡列表,无论是启用还是禁用都可以获取。**由此我们可以通过对比这两个列表来判断一个网卡是启用状态还是禁用状态。
关于判断网卡启用还是禁用除了这个方法外并没找到更好地办法。
如果电脑已经识别出了无线网卡,则会在注册表上注册,所有可以通过注册表检测是否为无线网卡
SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\" + mo["SettingID"] + "\\Connection"
MediaSubType==2为无线网卡
通过执行命令行进行对网卡的启用/禁用
string cmd = ($"wmic path win32_networkadapter where index={network["Index"]} call ");
cmd += state ? "enable" : "disable";
RunCMD(cmd, out string strOutput);
- 当开始启用网卡的时候,如果立即获取所有wifi列表,是获取不全的,过个几十毫秒再去获取就能获取全了
- SimpleWifi有个连接/断开wifi的事件,很有用