Bonjour pour lancer des commandes DOS dans Delphi j'utilise la fonction suivante qui marche très bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function LanceAppliAttenteFin(NomFichier:string):boolean;
{permet de lancer un exécutable. NomFichier est le nom avec chemin }
{de cet exécutable ou d'un raccourci qui pointe vers cet exécutable. }
{ notre programme est arrété tant que l'exécutable n'est pas fini }
{tout est arrété on ne peut donc même plus déplacer sa fenêtre. }
{ il est donc préférable de la rendre invisible avant le lancement }
{de cette fonction. }
{ LanceAppliAttenteFin renvoie true si le lancement s'est bien passé }
var
StartInfo : TStartupInfo;
ProcessInformation : TProcessInformation;
begin
result:=true;
ZeroMemory(@StartInfo, sizeof(StartInfo)); // remplie de 0 StartInfo
StartInfo.cb:=sizeof(StartInfo);
if CreateProcess(nil,PChar(NomFichier),nil,nil,true,0,nil,nil,StartInfo,ProcessInformation)
then WaitForSingleObject(ProcessInformation.hProcess, INFINITE)// attend que l'application désignée par le handle ProcessInformation.hProcess soit terminée
else result:=false;
end;
Mais seulement cette fonction affiche une fenêtre DOS que je souhaiterais cacher, une idée ?
Merci
Bien cordialement