在C#中管理无线网络连接

13

我们有一个用C#编写的WinForms应用程序,具有非常定制化的GUI界面。用户不允许运行其他应用程序,也不能进入操作系统(WinXP Pro)。我们计划允许用户连接可用的无线网络。我们将需要创建一个配置屏幕,显示可用网络(按SSID),并允许用户连接。在连接时,我们想要显示信号强度。

是否有任何现有组件提供此功能?我没有找到任何东西,除了这个

我可以使用WMI设置TCP/IP设置,但需要一些关于无线部分的指导。

非常感谢!

Matt


如果你找到了这个有趣的组件,请在这里发布。 - kenny
3个回答

8

Managed Wifi API 应该可以使用。

可能不是最理想的选择 - 因为您使用的是 XP,但您需要部署一个热补丁。我会选择这个API,因为我处理过的所有无线网络代码 (用于 Compact Framework) 都非常难以理解。而这个API的代码却非常简单明了。

然而,他们的示例代码并未包括读取信号强度的功能,我也不确定本地 wifi API 是否提供此功能。我曾编写过 C# 代码来获取无线信号强度,但这是通过 PInvoke 调用制造商特定的 DLL 来实现的,而该 DLL 仅适用于他们的设备。所以您可能需要类似的方法才能从PC的无线网卡中获取无线强度 (这也可能是为什么通用API中没有这个功能的原因)。


本地Wifi确实提供信号强度,因此如果Managed Wifi API中没有该功能,我可以将其添加进去。感谢您指引我正确的方向! - user37149
没问题。我很高兴自己找到了这个,也很高兴知道它能够正常工作。 - MusiGenesis
1
请提供一个连接到Wi-Fi的示例。 - HelloWorld_Always
1
@HelloWorld_Always:很抱歉,那段代码是我为以前的雇主编写的,我现在无法访问它。 - MusiGenesis

4

4

我写了一个库,它是在托管Wifi之上的一层抽象,使用起来更加方便。你可以在GitHub上找到它


你的代码可以创建托管网络吗?就像netsh wlan create... - Nicke Manarin
@NickeDaSilvaManarin 不,它不被支持。 - Robin Andersson

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