Salut,
Voila une focntion qui devrait faire ca:
function LaunchAndWait(sFile: String; sparam: String; wShowWin: Word): Boolean;
var
cExe: array [0..255] of Char;
sExe: string;
pcFile: PChar;
StartInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
begin
Application.ProcessMessages ;
Result:=True;
FindExecutable(PChar(ExtractFileName(sFile)), PChar(ExtractFilePath(sFile)), cExe);
sExe:= string(cExe);
pcFile:=PChar(sparam);
Edit1.Text:=sExe +pcFile;
ZeroMemory(@StartInfo, SizeOf(StartInfo));
with StartInfo do begin
cb:=SizeOf(StartInfo);
dwFlags:=STARTF_USESHOWWINDOW;
wShowWindow:=wShowWin;
end;
Application.ProcessMessages ;
if CreateProcess(PChar(sExe), pcFile, nil, nil, True, 0, nil, nil, StartInfo, ProcessInfo)
then WaitForSingleObject(ProcessInfo.hProcess, INFINITE)
else Result:=False;
Application.ProcessMessages ;
end;
Et puis tu appels la fonction comme ceci:
if not LaunchAndWait('cxtotiff.exe', param, SW_HIDE) then
begin
//ici ton code
end;
Fab
|