Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Как запустить приложение и подождать пока оно отработает 8

Автор: Elena_tark
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Дождаться завершение внешнего приложения

Дожидается завершения внешнего процесса

Зависимости: shellAPI
Автор:       elena_tark, elena_tark@freemail.ru, Калуга
Copyright:   Собственное
Дата:        1 августа 2003 г.
***************************************************** }

procedure ShellExec(Sender: TObject);
var
  ProcInfo: PShellExecuteInfo;
begin
  (Sender as TControl).Enabled := False;
  GetMem(ProcInfo, SizeOf(ProcInfo^));
  with ProcInfo^ do
  begin
    Wnd := Handle;
    cbSize := SizeOf(ProcInfo^);
    lpFile := PChar('notepad.exe');
    lpParameters := nil;
    lpVerb := 'open';
    nShow := SW_SHOW;
    fMask := SEE_MASK_DOENVSUBST or SEE_MASK_NOCLOSEPROCESS;
  end;
  try
    Win32check(ShellExecuteEx(ProcInfo));
    while not Application.Terminated and
      (WaitForSingleObject(ProcInfo.hProcess, 100) = WAIT_TIMEOUT) do
      Application.ProcessMessages;
  finally
    if ProcInfo.hProcess <> 0 then
      CloseHandle(ProcInfo.hProcess);
    Dispose(ProcInfo);
    (Sender as TControl).Enabled := True;
  end;
end;
Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay