如果一个网卡,没有连接到网络(没有插网线或网线的另一端没有连接到一个另一个设备)
该网卡的图标(trayicon,如果选中显示图标的话),会是一个带小红叉的计算机。
使用ipconfig查看,会显示出
  Media State . . . . . . . . . . . : Cable Disconnected请问,我如何用程序得到这个状态?

解决方案 »

  1.   

    DWORD flags;     //上网方式  
        InternetGetConnectedState(&flags,0);
    CString strInternetState;
    /*    switch(flags)
    {
    case (INTERNET_CONNECTION_MODEM):
    {
    strInternetState = "通过Modem上网";
    break;
    }  
    case (INTERNET_CONNECTION_LAN):
    {
    strInternetState = "通过局域网上网";
    break;
    }
    case (INTERNET_CONNECTION_PROXY):
    {
    strInternetState = "通过代理上网";
    break;
    }
        }
    */
      

  2.   

    to:oyljerry(☆勇敢的心☆-Paper Reviewing)我是想知道,系统中的每一个网卡,是否有网线连接。
      

  3.   

    http://community.csdn.net/Expert/topic/3695/3695114.xml?temp=.3383142昨天刚有人问过
      

  4.   

    to:guangsan(丑草) 
    我看了看那个帖子,和我的问题不一样我的机器上,有多个网卡,我想每隔一段时间,检测一下,每个网卡是否接有网线
    这些网卡都不和internet连通。
      

  5.   

    用ipconfig可以看出来每个网卡是否断开(Cable Disconnected)
    应该和驱动无关的在程序中用netstat?要用也是用ipconfig,不过我可不想这么用。
      

  6.   

    查查msdn,  GetIfTable(), GetAdaptersInfo(), 
    很久前用过,可以返回所有网络适配器(网卡,modem)的信息,包括状态信息。如果返回信息中没有你想要的直接信息,可以通过判断每一个网络接口当前的IP地址是否有效或链接速度是否为0来推断出你想要的东西。
      

  7.   

    用 OVERLAPPED opd;
    if(NotifyAddrChange(NULL,&opd) == NO_ERROR)
    {
    AfxMessageBox("网线被拔掉或插上!");
    }
    可以诊测到网卡上插拔网线的动作,希望会对你有用