ShellExecute(NULL, "open","d:/bysj/1.exe" ,NULL, NULL, SW_SHOWNORMAL);

解决方案 »

  1.   

    handle = CreateProcess........
    if(WaitforsingleObject()..........可以用其它)
       OnOK
      

  2.   

    以下函数可以执行一个命令行,并阻塞直到命令行的程序结束。
    BOOL ExecCommandLine_Block(char * szCommandLine)
    {
    STARTUPINFO si;
    ZeroMemory(&si,sizeof(si));
    si.cb = sizeof(si);
    PROCESS_INFORMATION piProcess;
    BOOL bRet;
    bRet = CreateProcess(NULL,szCommandLine,NULL,NULL,FALSE,CREATE_NO_WINDOW,NULL,NULL,&si,&piProcess);
    if(bRet)
    CloseHandle(piProcess.hThread); 
    WaitForSingleObject(piProcess.hProcess,INFINITE);
    CloseHandle(piProcess.hProcess);
    return bRet;
    }
      

  3.   

    jeffreyren(我的心已经乱了感觉),是这样吗?好像不行!编译通过了!但1.exe出不来! 
    void CMyDlg::OnOK() 

    ShellExecute(NULL, "open","d:/bysj/1.exe" ,NULL, NULL, SW_SHOWNORMAL);
    CDialog::OnOK(); 

      

  4.   

    用system或WinExec或CreateProcess函数。具体请看msdn
      

  5.   

    ShellExecute(NULL, "open","d:/bysj/1.exe" ,NULL, NULL, SW_SHOWNORMAL)
    这样不对。
    应该是:
    ShellExecute(NULL, "open","d:\\bysj\\1.exe" ,NULL, NULL, SW_SHOWNORMAL
      

  6.   

    可我改了,1.exe还是出不来!void CMyDlg::OnOK() 
    {
         ShellExecute(NULL, "open","d:\\bysj\\bjsj.exe" ,NULL, NULL, SW_SHOWNORMAL);
     CDialog::OnOK();
    }
      

  7.   

    CFileStatus status;
    if(!CFile::GetStatus(kernel[index].strPath,status))
    {
    MsgBox(IDS_ERROR_3);
    return ;
    }
    STARTUPINFO si={sizeof(si)}; //一个struct可以这样赋值吗?
    si.dwFlags =STARTF_USESHOWWINDOW;
    si.wShowWindow = (unsigned short)kernel[index].iShowFlag ;
    PROCESS_INFORMATION pi={0}; CreateProcess(kernel[index].strPath,NULL,NULL,NULL,FALSE,
    0,NULL,NULL,&si,&pi);  //从一个程序中调用了另一个程序
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);