MFC的单文档程序,需要用另一个程序启动,且要传给被启动的程序一个参数,如何实现?
另外,两个程序都启动后,要互相传一些参数,如何实现,谢谢了!

解决方案 »

  1.   

    CString m_sParameter="-P";
    ShellExecute(NULL, "open", "Print.exe", m_sParameter, NULL, SW_SHOWNORMAL);
      

  2.   

    BOOL CreateProcess(
      LPCTSTR lpApplicationName,                 // name of executable module
      LPTSTR lpCommandLine,                      // 在此传递你的参数
      LPSECURITY_ATTRIBUTES lpProcessAttributes, // SD
      LPSECURITY_ATTRIBUTES lpThreadAttributes,  // SD
      BOOL bInheritHandles,                      // handle inheritance option
      DWORD dwCreationFlags,                     // creation flags
      LPVOID lpEnvironment,                      // new environment block
      LPCTSTR lpCurrentDirectory,                // current directory name
      LPSTARTUPINFO lpStartupInfo,               // startup information
      LPPROCESS_INFORMATION lpProcessInformation // process information
    );
    要实现互相传参数的话,可以使用内存映射文件
      

  3.   

    WinExec("another.exe parm", SW_SHOW);
    parm 就是传递给another.exe的参数
    两个程序可以通过FindWindow 得到对方的窗口句柄,然后用SendMessage 传递参数
      

  4.   

    两个程序都启动以后传递参数
    如果是简单的可以自定义消息传递,只要两边的消息值相同,找窗口传递即可
    更通用的是文件映射
    参考CreatFileMapping OpenfileMapping等函数
      

  5.   

    主程序怎么写啊,MFC的程序都是不带传入参数的啊?
    怎么接收传来的参数啊?
      

  6.   

    CString cszCmd;
    cszCmd = GetCommandLine();
    就可以了。
      

  7.   

    可以用API GetCommandLine取得命令行参数. 启动另外一个程序的方法有很多,如CreateProcess,WinExec,system等等。进程之间相互传递参数,可以使用IPC机制,如上面
    提到的内存映射文件,也可使用其他的如Socket。甚至是用WM_COPYDATA消息, ^_^Happy Programming!!
      

  8.   

    WinExec("another.exe", SW_SHOW); 
    WinExec("another.exe parm", SW_SHOW);上面两个,带参数的启动不了,还有,主程序怎么接收参数啊?
    getcomandline,怎么用啊,加在什么地方,不带参数的可以得到主程序的地址,带参数的怎么得到参数啊,谢谢大家了!
      

  9.   

    启动时可加shell参数,运行后互传信息可能要用到进程间通信