Bool IsNetworkAlive(
  LPDWORD lpdwFlags     // Specifies the type of network connection
);

解决方案 »

  1.   

    IsNetworkAlive?我的MSDN太旧了?
      

  2.   

    if(InternetGetConnectedState(NULL,NULL))  MessageBox("Connected!");
      

  3.   

    其实第一个是Flag,可以监测连接方式,但似乎不好使,我用Modem连接他竟说是局域网???
      

  4.   

    kimryo:
       InternetGetConnectedState在用户的Internet选项->连接 里面设置了“不进行拨号连接” 就无法检测了,将总返回TRUE
      

  5.   

    唉,我怎么把这个给忘了!用这个吧!应该很好用哦! DWORD count,Size;
     RASCONN ras[20];
     ras[0].dwSize=sizeof(RASCONN);
     Size=sizeof(ras);
     if(RasEnumConnections(ras,&Size,&count)==0)
      MessageBox("Have connect!");其中count是连接的个数(因为连接可能不止一个)。对了,别忘了#include<ras.h>,包含RASAPI32.lib.
      

  6.   

    判断是否拨号上网要用到相关的API函数。C语言中的方法是在main()主函数前加入以下头文件和库文件:
        #include<windows.h>
        #include<wininet.h>//网络编程可能需要的头文件
        #pragma comment(lib, "wininet.lib")//网络编程需要的库文件
    然后具体调用InternetGetConnectedState这个API,以下给一段简短的判断是否拨号上网的程序:
    bool IsOnline()
    {
        DWORD flags;//上网方式
        InternetGetConnectedState(&flags,0);
        if(flags & INTERNET_CONNECTION_MODEM)   /*判断是否为拨号上网*/
            return true;
        else
            return false;
    }
    哈哈……当然这个API还可以判断包括局域网连接在内的其它几种方式,具体的用法查MSDN吧。