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

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

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Запуск программы и ожидание завершения опр.время

Запускает внешнюю программу и ожидает его завершения определённое время,
если истекает время то, программа продолжает работу не зависимо от
состояния внешней программы (На случай подвисания вн. прог-мы, особенно DOS)

Зависимости: Windows
Автор:       Kostas, kostas@tut.by, РБ Гомельская обл. г. Речица
Copyright:   вроде delphi.mastak.ru (слегка доработанно)
Дата:        03 мая 2002 г.
***************************************************** }

function ExecAndWait(aCmd: string; WaitTimeOut: cardinal = INFINITE): Cardinal;
var
  si: STARTUPINFO;
  pi: PROCESS_INFORMATION;
  res: BOOL;
  r: cardinal;
begin
  with si do
  begin
    cb := sizeof(si);
    lpReserved := nil;
    lpDesktop := nil;
    lpTitle := PChar('External program "' + aCmd + '"');
    dwFlags := 0;
    cbReserved2 := 0;
    lpReserved2 := nil;
  end;
  res := CreateProcess(nil, PChar(aCmd), nil, nil, FALSE, 0, nil, nil, si, pi);
  if res then
    WaitForSingleObject(pi.hProcess, WaitTimeOut);
  GetExitCodeProcess(pi.hProcess, r);
  result := r;
end;

// Пример использования:
procedure Exec(CommandStr, WaitTime);
begin
  if ExecAndWait(CommandStr, WaitTime) = WAIT_FAILED then
    ShowMessage('Истекло время ожидания внешней программы ' + CommandStr);
end;
Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay