Managing wireless network connection in C#

user37149 picture user37149 · Nov 12, 2008 · Viewed 43.4k times · Source

We've got a WinForms app written in C# that has a very custom GUI. The user is not allowed to run any other applications and the user cannot go into the OS (WinXP Pro) at all. We're planning on allowing the user to connect to available wireless networks. We're going to have to create a configuration screen that displays available networks (by SSID) and allows the user to connect. While connected we want to display signal strength.

Are there any existing components that provide this capability? I haven't found anything but this.

I can set the TCP/IP settings using WMI, but it's the wireless stuff that I need a direction on.

Many thanks!

Matt

Answer

MusiGenesis picture MusiGenesis · Nov 12, 2008

Managed Wifi API should work.

This might not be ideal - you have XP, which is good, but you would have to deploy a hotfix. I'd go for it, because all the wifi code I've dealt with (for the Compact Framework) is hideous. This code is as simple as could be.

Their sample code doesn't include reading the signal strength, though, and I'm not sure if the Native wifi API provides that. I have written C# code that gets the wireless signal strength, but it did this by PInvoking into a manufacturer-specific DLL available only on their devices. It may be that you'll have to do something similar to get the wireless strength from your PC's wireless card (and that may be why that functionality is not available in an all-purpose API).