WifiManager
主要使用的技術:
SimpleWifi,MahaApp.Metro控件
一 網卡設置
1.獲取所有網卡(NetWorkAdapter類)
方法A
通過API SELECT * FROM Win32_NetworkAdapterConfiguration
獲取網卡列表
方法B
調用NetworkInterface.GetAllNetworkInterfaces()
返回本地計算機上的網絡接口對象
方法B相比於方法A的區別在於方法B只能找出啟用的網卡對象,而方法A可以獲取全部的網卡列表,無論是啟用還是禁用都可以獲取。由此我們可以通過對比這兩個列表來判斷一個網卡是啟用狀態還是禁用狀態。
關於判斷網卡啟用還是禁用除了這個方法外並沒找到更好地辦法。
2.檢測是否為無線網卡
如果電腦已經識別出了無線網卡,則會在注冊表上注冊,所有可以通過注冊表檢測是否為無線網卡
SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}\\" + mo["SettingID"] + "\\Connection"
MediaSubType==2為無線網卡
3.設置網卡啟用/禁用
通過執行命令行進行對網卡的啟用/禁用
string cmd = ($"wmic path win32_networkadapter where index={network["Index"]} call ");
cmd += state ? "enable" : "disable";
RunCMD(cmd, out string strOutput);
Tips
- 當開始啟用網卡的時候,如果立即獲取所有wifi列表,是獲取不全的,過個幾十毫秒再去獲取就能獲取全了
- SimpleWifi有個連接/斷開wifi的事件,很有用