之前学习Python的过程中学过基于pywifi模块操作wifi连接的用法,在dotnet中,SimpleWifi也支持类似的功能。SimpleWifi是C#语言编写的在Windows系统中管理wifi连接的库,它抽象并封装了Managed Wifi API中的wifi操作相关函数,更易于使用。
SimpleWifi的GitHub地址见参考文献1-2,其自带的示例程序(参考文献3)是控制台程序,展示了基于SimpleWifi模块获取可用wifi列表、连接wifi、断开wifi、获取wifi状态等操作的基本用法。
本文学习SimpleWifi自带的控制台示例程序,并创建Winform程序测试simplewifi的基本用法。SimpleWifi中的主要类包括Wifi和AccessPoint,其中Wifi类包括主要的wifi连接操作,常用函数/属性/事件如下表所示:
序号 | 函数/属性/事件 | 说明 |
---|---|---|
1 | NoWifiAvailable | 是否有可用的无线接入点,该值为true,则GetAccessPoints返回空集合 |
2 | GetAccessPoints | 获取所有可用的无线接入点,返回AccessPoint对象集合 |
3 | Disconnect | 断开所有已连接的无线接入点 |
4 | ConnectionStatus | 返回当前的连接状态,主要包括Connected和Disconnected两个值 |
5 | ConnectionStatusChanged | wifi连接状态发生变化时触发该事件 |
AccessPoint类代表无线接入点,一个实例对应一个无线接入点,常用函数/属性/事件如下表所示:
序号 | 函数/属性 | 说明 |
---|---|---|
1 | Name | 无线接入点名称 |
2 | SignalStrength | 无线接入点的信号强度,数值型,数值越大,信号越强 |
3 | HasProfile | 标识计算机是否保存有当前无线接入点的配置信息(名称、密码等) |
4 | IsSecure | 无线接入点是否安全? |
5 | IsConnected | 无线接入点是否处于连接状态 |
6 | IsValidPassword | 验证密码是否有效 |
7 | Connect | 连接当前无线接入点 |
8 | ConnectAsync | 异步连接当前无线接入点 |
基于上述函数,编写了基于Winform的测试函数,在项目中添加simplewifi的NuGet引用。
测试程序的主要功能就是获取wifi列表、断开wifi连接、连接指定wifi,代码比较简单,就不列在文章里面了(有兴趣的可以直接到参考文献3中学习simplewifi的示例代码),仅列出测试程序的主要功能截图,如下所示:
参考文献:
[1]https://github.com/mahdi-ataollahi/simplewifi
[2]https://github.com/DigiExam/simplewifi
[3]https://github.com/DigiExam/simplewifi/blob/master/SimpleWifi/Wifi.cs