c# 判断网络是否连接

发布时间:2009年12月03日      浏览次数:565 次
win32 API函数的做法:
要用的函数:InternetGetConnectedState
函数原形:BOOL InternetGetConnectedState(LPDWORD lpdwFlags,DWORD dwReserved);
参数lpdwFlags返回当前网络状态,参数dwReserved依然是保留参数,设置为0即可。
INTERNET_CONNECTION_MODEM 通过调治解调器连接网络
INTERNET_CONNECTION_LAN 通过局域网连接网络
这个函数的功能是很强的。它可以:
  1. 判断网络连接是通过网卡还是通过调治解调器
  2. 是否通过代理上网
  3. 判断连接是On Line还是Off Line
  4. 判断是否安装“拨号网络服务”
  5. 判断调治解调器是否正在使用
这个win32 API在系统system32文件夹中winInet.dll中
使用这个判断的话,需要在类中这样写:

#region 判断是否连接了网络
public const int INTERNET_CONNECTION_MODEM = 1;
public const int INTERNET_CONNECTION_LAN = 2;
[System.Runtime.InteropServices.DllImport("winInet.dll")]
public static extern bool InternetGetConnectedState(
ref int dwFlag,
int dwReserved
);
/*
调用示例
System.Int32 dwFlag = new int();
if (!InternetGetConnectedState(ref dwFlag, 0))
{
MessageBox.Show("网络未连接,请检查!", "提示");
return;
}
else
{
if ((dwFlag & INTERNET_CONNECTION_MODEM) != 0)
{
MessageBox.Show("采用调制解调器上网。");
}
else
{
if ((dwFlag & INTERNET_CONNECTION_LAN) != 0)
{
MessageBox.Show("采用网卡上网。");
}
}
}
*/
#endregion
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!