日期:2014-05-18  浏览次数:21798 次

C#中如何获取当前系统的网络类型和网络信号强度
问题如标题所示,各位大大,请指教

------解决方案--------------------
有个库wlanapi.dll中应该有你想要的功能.
http://www.pudn.com/downloads443/sourcecode/windows/network/detail1869658.html
以上链接有头文件、lib以及dll的下载。
------解决方案--------------------
http://www.codeproject.com/Articles/23496/Wireless-signal-indicator
这里有个无线信号强度的demo
------解决方案--------------------
你可以用 ping ping到服务器的网络是否畅通 根据时间判断网络信号强度 我就是这样做的
//获取服务器ip 
string constring = ConfigManager.GetConnectionStringsConfig(ConfigManager.config, "ServerDB");
string[] strs = constring.Split('=');
string strServer = strs[1].Substring(0, strs[1].IndexOf(';'));
//检测网络是否通畅
Ping ping = new Ping();
PingReply reply = ping.Send(strServer);

if (reply.Status == IPStatus.Success)
{
if(reply.RoundtripTime<200)
{//加载信号图片
SignalImg.Dispatcher.BeginInvoke(new Action(() =>
{LoadPhoto(SignalImg, "\\Images\\Max-signal.gif");}));
}
else
{//加载信号图片
SignalImg.Dispatcher.BeginInvoke(new Action(() =>
{LoadPhoto(SignalImg, "\\Images\\low-signal.png");}));
}
}
else
{
//加载信号图片
SignalImg.Dispatcher.BeginInvoke(new Action(() =>
{ LoadPhoto(SignalImg, "\\Images\\no-signal.png"); }));
}