赞
踩
Simplewifi的官网:https://github.com/DigiExam/simplewifi
在C#中,SimpleWifi库是一个用于与Wi-Fi设备进行交互的库。它提供了一组易于使用的API,使开发人员能够轻松地连接到Wi-Fi网络、管理Wi-Fi连接和执行其他与Wi-Fi相关的操作。
SimpleWifi库的主要特点包括:
要开始使用SimpleWifi库,首先需要安装相应的NuGet包。你可以通过NuGet包管理器来安装SimpleWifi库。在Visual Studio中,打开“工具”菜单,选择“NuGet包管理器”,然后选择“管理解决方案的NuGet包”。在打开的窗口中搜索“SimpleWifi”,并安装相应的包,如下图所示:
安装完成后,你可以在你的C#项目中引入SimpleWifi库,并开始使用它。以下是一个简单的示例,演示如何使用SimpleWifi库连接到Wi-Fi网络:
namespace WifiApp { public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// 获取WIFI列表 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void GetWifiList_Click(object sender, EventArgs e) { textBox1.Text = ""; // 实例化WIFI Wifi wifi = new Wifi(); // WIFI状态变化监听 wifi.ConnectionStatusChanged += Wifi_ConnectionStatusChanged; // 获取所有WIFI列表,遍历找到 wifi.GetAccessPoints().ForEach(item => { // 获取所有的WIFI textBox1.Text += $"WIFI:{item.Name}\r\n"; // 根据名称找到想要连接的WIFI if (item.Name.Contains("ZhuJi")) { AuthRequest authRequest = new AuthRequest(item); // WIFI密码 authRequest.Password = "12345678"; // 异步连接 // item.ConnectAsync(authRequest); // 同步 bool result = item.Connect(authRequest); // 打印连接结果 Console.WriteLine("Connect:"+result); } }); } /// <summary> /// WIFI状态变化 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Wifi_ConnectionStatusChanged(object sender, WifiStatusEventArgs e) { Console.WriteLine("Status:"+e.NewStatus); } } }
这里代码比较简单,就不做解释了,运行效果如下图:
功能比较简单,就是展示所有的WIFI列表,并自动连接名称ZhuJi-004的WIFI,到这里基本上就结束了。
但是按照这个步骤使用的会有一个问题,就是不需要密码的WIFI以及之前输入过密码的WIFI可以连接成功,第一次连接或者忘记了密码的WIFI连接的时候会报错,错误如下:这里简单解释错误原因:就是连接WIFI时会写入一个xml格式的配置文件,在获取本地的xml格式配置文件的时候没有找到,所以报错了。
解决办法就是不要使用NuGet包,自己去官网下载代码库导入到项目中进行编译。
如果安装了NuGet包先卸载了,然后去官网下载Simplewifi库到本地,然后打开项目点击右键引用—>添加引用—>找到simlplewifi添加进来即可,现在运行连接WIFI大概率还是会报错。
错误代码如下:
private static string GetTemplate(string name)
{
string resourceName = string.Format("SimpleWifi.ProfileXML.{0}.xml", name);
// Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)
// 报错的还是原因无法找到xml,返回一个空对象。
using (StreamReader reader = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)))
{
return reader.ReadToEnd();
}
}
还是找不到xml文件,现在要做如下操作:
右键这些xml文件找到属性,将文件属性的生成操作改成【嵌入的资源】,在重新运行项目,这个时候无论WIIFI是否连接过,只要在代码中设置了密码都可以成功连接了!!!
这个库的还有一些其它API这里就不在赘述,可以去看看这篇文章,结束~
https://blog.csdn.net/gc_2299/article/details/128746480
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。