Delphi FAQ >> Окна
Иногда может потребоваться запустить стороннею программу, дать ей отработать (или дать пользователю в ней поработать) и затем продолжить выполнение своей программы. Такую схему можно наблюдать в апплете Windows «Установка и удаление программ» (мы даже как-то реализовывали функционал этого апплета). Ниже приведена функция на языке программирования Delphi, которая запускает указанный процесс, ждет его завершения и возвращает управление в программу:
function StartAndWait(cmdline: String): Boolean;
var si: Startupinfo; pi: Process_information;
begin
result := false; zeromemory( @si,sizeof(si) ); si.cb := sizeof(si);
//пробуем создать процесс, используя заданную командную строку
//в случае неудачи выходим из функции с результатом False
if not createprocess( nil, pchar(cmdline), nil, nil, false, 0, nil, nil, si, pi ) then exit;
//ждем пока процесс не завершится
//infinite - означает, что ждем без ограничения во времени WaitForSingleObject( pi.hprocess, infinite );
//завершаем процесс
closehandle( pi.hprocess ); closehandle( pi.hthread );
//возвращаем True
Result := True;
end;
Если вы студент, то интересная работа для студентов в Киеве вас может заинтересовать.