Узнать о завершении запущенной программы
|
Страница 1 из 3
16-битная версия uses Wintypes,WinProcs,Toolhelp,Classes,Forms;
Function WinExecAndWait(Path : string; Visibility : word) : word; var InstanceID : THandle; PathLen : integer; begin { Преобразуем строку в тип PChar } PathLen := Length(Path); Move(Path[1],Path[0],PathLen); Path[PathLen] := #00; { Пытаемся запустить приложение } InstanceID := WinExec(@Path,Visibility); if InstanceID < 32 then { значение меньше 32 указывает на ошибку приложения } WinExecAndWait := InstanceID else begin Repeat Application.ProcessMessages; until Application.Terminated or (GetModuleUsage(InstanceID) = 0); WinExecAndWait := 32; end; end; |