Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Процессы- начало и конец


Автор: dandy77 21.6.2009, 17:44
У меня есть первая программа которая при выполнении запускает вторую. Когда вторая заканчиваеться мне надо сообщить пользователю что вторая программа закончилась и закончить первую (только по завершению второй). Как мне запустить вторую программу из первой, и узнать когда она закончилась. И мне что бы программа вывела врое AfxMessageBox() что она- вторая закончилась.

Автор: jonie 21.6.2009, 18:18
Код

SHELLEXECUTEINFO lpExecInfo;
      lpExecInfo.cbSize  = sizeof(SHELLEXECUTEINFO);
      lpExecInfo.lpFile = AdobeAcrobat // name of file that you want to execute/ print/ or open/ in your case Adobe Acrobat.
lpExecInfo.fMask=SEE_MASK_DOENVSUBST|SEE_MASK_NOCLOSEPROCESS ;     
      lpExecInfo.hwnd = NULL;  
      lpExecInfo.lpVerb = "open"; // to open  program
      lpExecInfo.lpParameters = fileName; //  file name as an argument
      lpExecInfo.lpDirectory = NULL;   
      lpExecInfo.nShow = SW_SHOW ;  // show command prompt with normal window size 
      lpExecInfo.hInstApp = (HINSTANCE) SE_ERR_DDEFAIL ;   //WINSHELLAPI BOOL WINAPI result;
      ::ShellExecuteEx(&lpExecInfo);
    
     
      //wait until a file is finished printing
      if(lpExecInfo.hProcess !=NULL)
      {
        ::WaitForSingleObject(lpExecInfo.hProcess, INFINITE);
        ::CloseHandle(lpExecInfo.hProcess);
      }
например через winAPI.

Автор: dandy77 22.6.2009, 21:29
Спасибо огромное jonie - ты мне серьезно подсобил.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)