在主程序启动另外的exe程序,在这个exe结束的时候通知主程序,然后主程序再启动另一个程序。
怎么实现?通过进程通信?还有其他的思路不?请教各位

解决方案 »

  1.   

    消息
    copydata
    剪贴板
    共享内存
    管道
    socket
    差不多齐了,结贴~
      

  2.   


    还有邮件槽CreateMailslot 
      

  3.   

    楼上都列了不少的进程通信方法
    针对你说的问题,用同步最方便
    STARTUPINFO StartupInfo = {0};
            PROCESS_INFORMATION ProcessInfo;
    bool ret2=CreateProcess("c:\\windows\\system32\\notepad.exe",NULL,NULL,NULL,FALSE,
                  CREATE_DEFAULT_ERROR_MODE,NULL,NULL,&StartupInfo,&ProcessInfo);
    OutputDebugString("before WaitForSingleObject");
    WaitForSingleObject(ProcessInfo.hProcess,-1);
    OutputDebugString("after WaitForSingleObject");
      

  4.   

    如果另外的exe不是你写的,不好修改它的话,还可以:主程序里启动另外的exe时保存它的PID
    然后OpenProcess的到它的句柄hProcess
    然后主程序开个线程WaitForSingleObject等它结束
      

  5.   

    获取该进程句柄,启动一线程用Wait函数等待该进程,返回则通知主窗体该进程结束
      

  6.   

    另外一个exe的名字你应该知道吧,在主程序里记录他的名字XXX.exe
    主程序每隔MS扫描一次进程,如果XXX.exe不存在,则XXX.exe已经结束,则启动另外一exe注:扫描进程速度是非常快的,几乎不占什么资源,此法可解,也可以解决另外那个exe不是你写的情况
      

  7.   


    创建进程,并等待进程结束信号
    STARTUPINFO StartupInfo = {0};
            PROCESS_INFORMATION ProcessInfo;
        bool ret2=CreateProcess("c:\\windows\\system32\\notepad.exe",NULL,NULL,NULL,FALSE,
                  CREATE_DEFAULT_ERROR_MODE,NULL,NULL,&StartupInfo,&ProcessInfo);
        OutputDebugString("before WaitForSingleObject");
        WaitForSingleObject(ProcessInfo.hProcess,-1);
        OutputDebugString("after WaitForSingleObject");