【问题标题】:Update Wifi networks programmatically以编程方式更新 Wifi 网络
【发布时间】:2020-11-26 23:31:42
【问题描述】:
我正在尝试创建一个程序,当它在范围内时连接到某个 wifi 网络,即使它已经连接到另一个 wifi。
我正在使用SimpleWifi,基本上效果很好。除了在我单击 Windows 10 任务栏中的 wifi 图标以显示网络列表之前它没有看到新的 wifi 网络。
如何强制 c# 程序更新 wifi 网络列表?
目前使用IEnumerable<AccessPoint> accessPoints = wifi.GetAccessPoints().OrderByDescending(ap => ap.SignalStrength);更新wifi网络,但正如我所说,在从Windows手动刷新之前它看不到新网络。
【问题讨论】:
标签:
c#
winforms
windows-10
wifi
【解决方案1】:
这差不多是 3 年前的事了,但无论如何,这是我对这个问题的看法。
在该库中,您可以调用:
SimpleWifi.Wifi.Disconnect()
我在重新连接并再次获取接入点列表之前执行此操作。这有点像,在 Windows 发现后引入的新网络确实出现了,但比在 Windows 中单击“wifi”按钮要慢得多,这会立即显示新发现的网络。
如果有人知道“触发”Windows/托管 wifi 连接以更新其列表的解决方案,就像您在 Windows 中所做的那样,我将不胜感激
【解决方案2】:
SimpleWifi 与其他 Wifi 库一样内置了此功能。并且它是必需的,因为 Windows 不始终正确显示所有可用的 wifi 网络,除非被查询..
示例代码可以在这里找到:https://pastebin.com/1iCp41SP
,不是最优雅的代码,但在 WPF 项目中工作。
这部分代码扫描/刷新SimpleWifi中的Wifi列表
foreach (WlanInterface wlanIface in testClient.Interfaces)
{
wlanIface.Scan();
}