Поиск на сайте
Главная Журнал Форум Wiki DRKB Страны мира


Как запустить другое приложение и подождать, пока оно завершится

Здесь представлена функция, которая вызывается таким же образом как и WinExec, однако она ждёт, пока запущенная задача завершится.


function WinExecAndWait(Path: PChar; Visibility: Word): Word;
var
  InstanceID: THandle;
  Msg: TMsg;
begin
  InstanceID := WinExec(Path, Visibility);
  if InstanceID < 32 then { значение меньше чем 32 указывает на ошибку }
    WinExecAndWait := InstanceID
  else
    repeat
       while PeekMessage(Msg, 0, 0, 0, pm_Remove) do
       begin
         if Msg.Message = wm_Quit then Halt(Msg.WParam);
         TranslateMessage(Msg);
         DispatchMessage(Msg);
       end;
    until GetModuleUsage(InstanceID) = 0;
  WinExecAndWait := 0;
end;

 

 

 


Основные разделы сайта


 

Реклама