C++ 程序中调用系统可执行文件 mstsc.exe,该怎么解决

C++ 程序中调用系统可执行文件 mstsc.exe
        程序从数据库提取到一台机器的:IP地址、登陆用户名和登陆密码,
分别保存在三个字符串中strip、struser、strpwd,如何调用系统
的可执行文件mstsc.exe   并自动将这三个参数填充到“远程桌面连接”
对话框的相应位置,到这就OK,然后我再点连接就可登陆该机器。

        要用到哪些函数,如何实现,请教诸位高手了!

------解决方案--------------------
C/C++ code

    CWnd *pMainWnd = FindWindow(NULL,"远程桌面连接");
    if ( !pMainWnd )
    {
        STARTUPINFO si;
        PROCESS_INFORMATION pi;
        
        ZeroMemory( &si, sizeof(si) );
        si.cb = sizeof(si);
        ZeroMemory( &pi, sizeof(pi) );
        char szSystemDir[512+1];
        memset(szSystemDir,0,sizeof(szSystemDir));
        
        GetSystemDirectory(szSystemDir,sizeof(szSystemDir));
        
        // Start the child process. 
        if( !CreateProcess(strcat(szSystemDir,"\\mstsc.exe"), // No module name (use command line). 
            NULL,   // Command line. 
            NULL,             // Process handle not inheritable. 
            NULL,             // Thread handle not inheritable. 
            FALSE,            // Set handle inheritance to FALSE. 
            0,                // No creation flags. 
            NULL,             // Use parent's environment block. 
            NULL,             // Use parent's starting directory. 
            &si,              // Pointer to STARTUPINFO structure.
            &pi )             // Pointer to PROCESS_INFORMATION structure.
            ) 
        {
            MessageBox("打开远程桌面进程失败!");
            return;
        }
        Sleep(500);
        while ( true )
        {
            pMainWnd = FindWindow(NULL,"远程桌面连接");
            if ( pMainWnd  == NULL )
            {
                continue;
            }
            else
            {
                break;
            }
        }
    }
    HWND hMainWnd = pMainWnd->m_hWnd;
    HWND hOptionWnd = FindWindowEx(hMainWnd,NULL,"Button","选项(&O) >>");
    if ( hOptionWnd != NULL )
    {
        while ( true )
        {
            ::SendMessage(hOptionWnd,BM_CLICK,0,0);
            HWND hExtWnd = FindWindowEx(hMainWnd,NULL,"Button","选项(&O) <<");
            if ( hExtWnd == NULL )
            {
                continue;
            }
            else
            {
                break;
            }
        }
    }
    else
    {
        while ( true )
        {
            hOptionWnd = FindWindowEx(hMainWnd,NULL,"Button","选项(&O) >>");
            if ( hOptionWnd == NULL )
            {
                continue;
            }
            else
            {
                break;
            }
        }
    }
    HWND hDlgWnd = FindWindowEx(hMainWnd,NULL,"#32770","");
    if ( hDlgWnd == NULL )
    {
        MessageBox("未找到远程桌面连接上的dialog!");
        return;
    }
    HWND hComputerIPWnd = FindWindowEx(hDlgWnd,NULL,"ComboBoxEx32",NULL);
    if ( hComputerIPWnd == NULL )
    {
        MessageBox("未找到填写远程计算机IP地址的窗口!");
        return;
    }

    HWND hComputerUserNameWnd = FindWindowEx(hDlgWnd,NULL,"Edit",NULL);
    if ( hComputerUserNameWnd == NULL)
    {
        MessageBox("未找到填写远程计算机用户名的窗口!");
        return;
    }

    HWND hComputerUserPwdWnd = FindWindowEx(hDlgWnd,hComputerUserNameWnd,"Edit",NULL);
    if ( hComputerUserPwdWnd == NULL )
    {
        MessageBox("未找到填写远程计算机用户密码的窗口!");
        return;
    }
    char szComputerIP[16] = "192.168.230.88";
    char szUserName[512] = "administrator";
    char szUserPwd[512] = "123";

    ::SendMessage(hComputerIPWnd,WM_SETTEXT,0,(LPARAM)szComputerIP);
    ::SendMessage(hComputerUserNameWnd,WM_SETTEXT,0,(LPARAM)szUserName);
    ::SendMessage(hComputerUserPwdWnd,WM_SETTEXT,0,(LPARAM)szUserPwd);

    HWND hConnWnd = ::FindWindowEx(hMainWnd,NULL,"Button","连接(&N)");
    if ( hConnWnd == NULL )
    {
        MessageBox("未找到连接按钮!");
        return;
    }
    ::SendMessage(hConnWnd,BM_CLICK,0,0);