2

我知道我可以通过执行“ncpa.cpl”打开“网络连接”控制面板位置,但这对我的应用程序来说还不够好。我想实际打开可用网络列表(相当于单击“网络连接”页面上的“无线网络连接”选项。

我到处寻找解决方案,但一无所获。我什至需要这样做的唯一原因是,除非您打开“无线网络连接”列表,否则 Windows 不会及时更新可用网络。我可以坐在这里整天使用“netsh wlan show networks”,它不会检测到新网络,直到我单击“无线网络连接”。我什至不必点击刷新按钮——我只调出原生列表。

通过断开连接(netsh wlan disconnect)并等待几分钟,我得到了好坏参半的结果,但这是不可接受的。

我正在尝试在 VB.NET 工具中加入一个方便的功能,该工具将过滤可用的 WiFi 网络,并允许用户通过在列表视图中选择它并按下“连接”按钮来连接到一个。我的代码工作得很好,但我受到这种极其缓慢的刷新率的限制。如果我只是单击托盘中的互联网访问小程序,我的列表将刷新,但这有点违背了重点。我已经做了很多工作来解决 netsh 需要配置文件才能连接到网络的限制,所以这是一个令人沮丧的发展。

如果我可以简单地运行小程序,即使在后台,它也会解决这个问题。如果那不可能,是否有一项服务可以在没有管理员权限的情况下刷新/重新启动,这会导致 Windows 获取更新的列表?netsh 实际上并没有更新列表,这有点荒谬......

编辑:

如果我问的是 XY 问题,我只想能够从 .NET 应用程序中获得准确最新的可用 WiFi 网络列表。我还希望能够从 .NET 中连接到所述网络,尽管我的 netsh“解决方案”只要我能获得 SSID 就可以完成这项工作。如果您还可以向我解释为什么 .NET/Java/etc 高级语言不能提供与平台无关的网络接口抽象,我会给您加分。我知道原生 API 解决方案,但在我看来,这对我的应用程序来说完全是矫枉过正(并且超出了我现在的技能/时间能力)。如果有关于在 .NET 解决方案中包含小型本机代码模块的良好教程/文档,我会全力以赴。

提前致谢

4

0 回答 0