以编程方式更新WiFi网络

4

我正在尝试创建一个程序,在范围内连接特定的wifi网络,即使已经连接到另一个wifi。

我正在使用 SimpleWifi,而且基本上它运行得很好。但是在点击Windows 10任务栏上的wifi图标以显示网络列表之前,它看不到新的wifi网络。

如何强制C#程序更新wifi网络列表?

目前使用 IEnumerable<AccessPoint> accessPoints = wifi.GetAccessPoints().OrderByDescending(ap => ap.SignalStrength); 来更新wifi网络,但正如我所说,它在没有手动从Windows刷新之前无法看到新网络。

2个回答

2
这是我对这个问题的看法,虽然已经快3年了。
在该库中,您可以调用:SimpleWifi.Wifi.Disconnect()。
在重新连接并再次获取接入点列表之前,我会这样做。这种方法有一定的效果,新网络在Windows发现后确实会显示出来,但速度比单击Windows中的“wifi”按钮慢得多,后者可以立即显示新发现的网络。
如果有人知道“触发”Windows/托管wifi连接以更新其列表的解决方案,就像在Windows中一样,我会很感激。

1
SimpleWifi和其他Wifi库一样内置了此功能。由于Windows并不总是正确显示所有可用的wifi网络,除非查询,因此这是必需的。
示例代码可以在此处找到:https://pastebin.com/1iCp41SP,虽然不是最优雅的代码,但在WPF项目中起作用。代码的这部分扫描/刷新SimpleWifi中的Wifi列表。
    var testClient = new WlanClient();
    foreach (WlanInterface wlanIface in testClient.Interfaces)
    {
       wlanIface.Scan();
    }

这是正确的答案。之前投票支持了那个看起来像是快速修复的答案,但实际上并没有在实践中起作用。这个可以。 - Denis G. Labrecque

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接