Cette fonction vous permet de lancer un fichier via son executable associer ou un executable directement puis d'attendre la fermerture de l'executable lancé.
Source / Exemple :
uses ShellApi;
function LaunchAndWait(sFile: String; wShowWin: Word): Boolean;
var
cExe: array [0..255] of Char;
sExe: string;
pcFile: PChar;
StartInfo: TStartupInfo;
ProcessInfo: TProcessInformation;
begin
Result:=True;
FindExecutable(PChar(ExtractFileName(sFile)), PChar(ExtractFilePath(sFile)), cExe);
sExe:= string(cExe);
if UpperCase(ExtractFileName(sExe))<>UpperCase(ExtractFileName(sFile))
then pcFile:=PChar(' "'+sFile+'"')
else pcFile:=nil;
ZeroMemory(@StartInfo, SizeOf(StartInfo));
with StartInfo do begin
cb:=SizeOf(StartInfo);
dwFlags:=STARTF_USESHOWWINDOW;
wShowWindow:=wShowWin;
end;
if CreateProcess(PChar(sExe), pcFile, nil, nil, True, 0, nil, nil, StartInfo, ProcessInfo)
then WaitForSingleObject(ProcessInfo.hProcess, INFINITE)
else Result:=False;
end;
Conclusion :
Ce source n'est pas de moi. J'ai juste rajouter wShowWin permettant de choisir la taille de la fenetre a ouvrir, et encor on ma aider!
M'enfin c'est le resultat qui compte apres tout!
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.