1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
procedure lancement(DirProlog,Executable : string);
// Cette fonction permet le lancement du programme Prolog
// la fonction attend la terminaison du programme Prolog
var
SEInfo: TShellExecuteInfo;
ExitCode: DWORD;
begin
FillChar(SEInfo, SizeOf(SEInfo), 0);
SEInfo.cbSize := SizeOf(TShellExecuteInfo);
with SEInfo do begin
// permet d'attendre la terminaison du programme
fMask := SEE_MASK_NOCLOSEPROCESS;
Wnd := Application.Handle;
lpFile := PChar(Executable);
// répertoire de travail (semble ne pas marcher)
lpDirectory := PChar(DirProlog);
// permet de ne pas voir l'ouverture du programme Prolog
// pour voir l'ouverture de la fenêtre faire
// nShow := SW_SHOWNORMAL
nShow := SW_HIDE;
end;
if ShellExecuteEx(@SEInfo) then begin
// attente de la terminaison du programme
repeat
Application.ProcessMessages;
GetExitCodeProcess(SEInfo.hProcess, ExitCode);
until (ExitCode <> STILL_ACTIVE) or
Application.Terminated;
end;
end; |
Partager