首先检测用户是否在线,如果不在线,则弹出Windows的拨号连接对话框。这是很常见的功能,请问该如何实现??

解决方案 »

  1.   

    我对你的问题不懂,不过我知道一个笨办法可以实现。
    你可以不停的读取本机 IP (这个例子网上很多,到处都有),如果 IP 不是合法 IP ,就可以判断你现在断线了,然后调用拨号程序开始拨号。
    或者你不停的尝试了解某一个服务器(比如新郎),如果连接不上,则判断是断线了。
      

  2.   

    首先检测用户是否在线
    ------------------------------------------------------------------
    void CIsOnlineDlg::IsOnline() 
    {
    // TODO: Add your control notification handler code here
        BOOL m_bOnline = FALSE;
        // Try connecting internet
        CString strErrorMsg(_T("Connect failure"));
        DWORD dwFlags;
        if(InternetGetConnectedState(&dwFlags, 0)) 
        {
            if((dwFlags & INTERNET_CONNECTION_LAN) ||
                (dwFlags & INTERNET_CONNECTION_MODEM))
            {
                // Connect failure
                m_bOnline=FALSE;   
                AfxMessageBox(strErrorMsg, MB_OK | MB_ICONERROR); 
                return FALSE;
            }
            // Connect success
            m_bOnline=TRUE;  
        }
        else
        {
            // Connect failure
            AfxMessageBox(strErrorMsg, MB_OK | MB_ICONERROR); 
            m_bOnline=FALSE;
            return FALSE;
        }
        
    }
      

  3.   

    如果不在线,则弹出Windows的拨号连接对话框。
    -----------------------------------------------
    RasDialDlg(NULL, szRasEntryName, NULL, lpInfo);