一些关于vc的问答

源代码在线查看: subject_25300.htm

软件大小: 8176 K
上传用户: RSY527
关键词: 问答
下载地址: 免注册下载 普通下载 VIP

相关代码

				
				序号:25300 发表者:精灵老豆 发表日期:2002-12-20 14:15:52
				主题:请问怎么知道现在的网络已经断了(编程)?
				内容:如题。
				返回上页访问论坛
				
				
				回复者:bird 回复日期:2002-12-20 14:19:43
				内容: 有一个ras的api函数RasEnumConnections可以查出现在系统中所有的连接,返回是0就是没有连接了。     下面是一个例子:     BOOL WINAPI IsModemOnline()     {      RASCONN ras[20];      DWORD dSize,dNumber,dCount;           ras[0].dwSize = sizeof(RASCONN);           dSize = sizeof( ras );           if( RasEnumConnections( ras, &dSize, &dNumber ) == 0 )      if(dNumber>0)return TRUE;      return FALSE;          }               如果返回TRUE就表示有连接。该例子在VC 6.0 pack2 + Win2000 pro通过。 
				
				返回上页访问论坛
				
				
				回复者:超频 回复日期:2002-12-20 14:21:03
				内容:利用ICMP协议实现类似Ping.exe的功能即可
				
				返回上页访问论坛
				
				
				回复者:bird 回复日期:2002-12-20 14:21:15
				内容:    用Win32 API 函数,定义在Wininet.h中:     BOOL InternetGetConnectedState()     VC/BC/BCB 都可用。 
				
				返回上页访问论坛
				
				
				答案被接受回复者:bird 回复日期:2002-12-20 14:21:41
				内容:在线返回 TRUE, 掉线返回 FALSE。遍历系统中所有 RAS 连接判断连接情况。Win2K/98 VC6 通过     BOOL CRasThread::GetConnectState()     {           LPRASCONN lpRasConn = NULL;      DWORD cbBuf = 0;      DWORD cConn = 0;      DWORD dwRet = 0;      HRASCONN hrasconn;      RASCONNSTATUS rasStatus;      UINT ndx;           // enumerate connections      cbBuf = sizeof(RASCONN);           if ( (lpRasConn = ( LPRASCONN ) malloc((UINT)cbBuf)) != NULL)      {      lpRasConn->dwSize = sizeof( RASCONN );      dwRet = RasEnumConnections( lpRasConn, &cbBuf, &cConn );      for (ndx = 0; ndx < cConn; ndx++)      {      // get to HRASCONN      hrasconn = lpRasConn[ndx].hrasconn;      // get connection status      rasStatus.dwSize = sizeof(RASCONNSTATUS);      dwRet = RasGetConnectStatus( hrasconn, &rasStatus );      if ( dwRet )      return 0;      else      {      if (rasStatus.rasconnstate == RASCS_Connected)      return 1;      else return 0;      }      }      }      else      {      return 0;      }          } 
				
				返回上页访问论坛
							

相关资源