解决方案 »

  1.   

    可以使用shellexecute将B启动起来,并且将登录信息作为参数传过去,B当然要支持命令行参数解析
      

  2.   

    先用ShellExecute启动程序,再模拟键盘输入,以便操作界面使它自动登录。
    如果B程序也是你写的,那么更好办,你可以接收A传来的一个参数,A把用户名密码作为参数传给B。
      

  3.   

    HINSTANCE hIns = ShellExecute( NULL, _T("open"), _T("B.exe"), cmd, NULL, SW_SHOWNORMAL ); // cmd为命令行参数
      

  4.   


    cmd在B中如何解析???在哪里可以得到
      

  5.   


    // 获取命令行传过来的参数
    m_strInstallDir = GetCmdValue( _T("-i") ); 
    m_strUpdateFileDir = GetCmdValue( _T("-u") ); 
    m_strUpdateDir = GetCmdValue( _T("-p") );CString GetCmdValue( const CString& key )
    {
    CString ret = _T("");
    for( int i=1; i< __argc - 1; i++ )
    {
    CString strCmdKey = __targv[i];
    strCmdKey.MakeLower();
    if( strCmdKey == key )
    {
    ret = __targv[i+1];
    break;
    }
    }

    return ret;
    }
      

  6.   

    比如传入的cmd参数列表如下,传入的是用户名和密码:CString cmd;
     cmd.Format( _T("-u \"%s\"  -p \"%s\" "), strUserName strPassword);
    (1)使用-u和-p目的是方便接收端解析;
    (2)将参数加上双引号,目的为防止内容中有空格,导致参数解析不正确