欲通过代码控制拨号连接,请问该使用什么函数?
shellexec吗?

解决方案 »

  1.   

    调用RasDial函数建立连接
    具体方法可以看MSDN或Google搜索
      

  2.   

    //创建拨号连接
    void CTestDlg::OnBtnClickedConnect()
    {
    UpdateData( TRUE );
        RASDIALPARAMS rdParams;
        rdParams.dwSize = sizeof(RASDIALPARAMS);
    rdParams.szEntryName[0] = '\0';
    lstrcpy( rdParams.szPhoneNumber, m_StrPhone);
    rdParams.szCallbackNumber[0] = '\0';
    lstrcpy( rdParams.szUserName, m_StrUserName );
    lstrcpy( rdParams.szPassword, m_StrPassword );
    rdParams.szDomain[0] = '\0';
    HRASCONN hRasConn = NULL;
        DWORD dwRet = RasDial( NULL, NULL, &rdParams, 0L, NULL, &hRasConn );
        if ( dwRet == 0 )  return ;
        char  szBuf[256];
    if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )
    wsprintf( (LPSTR)szBuf, "未知的 RAS 拨号错误: (%ld).", dwRet );
    RasHangUp( hRasConn );
    MessageBox( (LPSTR)szBuf, "信息提示", MB_OK | MB_ICONSTOP );
    }
    //断开拨号连接
    void CTestDlg::OnBnClickedDisconnectBtn()
    {
    RASCONN ras[20];
    DWORD  dSize, dNumber;
    char  szBuf[256];
    ras[0].dwSize = sizeof( RASCONN );
    dSize = sizeof( ras );   
    DWORD  dwRet = RasEnumConnections( ras, &dSize, &dNumber );
    if ( dwRet != 0 )
    {
    if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )
    wsprintf( (LPSTR)szBuf, "未定义RAS连接错误 (%ld).", dwRet );
    MessageBox( (LPSTR)szBuf, "信息提示", MB_OK | MB_ICONSTOP );
    return ;
    }
    for( DWORD dCount = 0;  dCount < dNumber;  dCount++ )
    {   
    HRASCONN hRasConn = ras[dCount].hrasconn;
    DWORD dwRet = RasHangUp( hRasConn );
    if ( dwRet != 0 )
    {
    char  szBuf[256];
    if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )
    wsprintf( (LPSTR)szBuf, "Undefined RAS HangUp Error (%ld).", dwRet );
    MessageBox( (LPSTR)szBuf, "RasHangUp", MB_OK | MB_ICONSTOP );
    }
    }
    }
      

  3.   

    PS:在编译时要设置“项目/属性/配置属性/链接器/输入/附加依赖项”为Rassapi32.lib使用前配置好拨号网络
      

  4.   

    请问两位仁兄,怎么样不用产生对话框即不用人工输入来直接创建一个phone book entry?
      

  5.   

    是用RAS,你在www.codeguru.com上可以找到现成的RAS例子程序。挺好用的http://www.codeguru.com/Cpp/I-N/internet/dial-up/article.php/c3435/
      

  6.   

    归纳起来有两重方式
    其一是tapi
    其二是at指令