URGENT !!! : Attendre l'achèvement d'un programme avant de lancer d'autres instr

Résolu
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 - 16 juin 2004 à 16:41
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 - 1 mars 2005 à 10:27
;) Le plus simple écolier sait maintenant des vérités pour lesquelles Archimède eut sacrifié sa vie... :)

Bonjour, voilà mon problème :

A partir d'un programme delphi, je lance un fichier BAT qui permet de copier un dossier dans un répertoire demandé à l'utilisateur dans le bat (j'utilise un bat pour pouvoir copier un dossier plus simplement... En effet, il n'existe pas de commande delphi "pratique" et "simple" pour copier un répertoire...) Ce fichier BAT définit une variable d'environnement pour le répertoire de destination, afin que le programme delphi la récupère et crée un raccourci sur le bureau pour ce dossier.

Le problème est que la variable d'environnement n'a pas eue le temps d'être créée car delphi a continué d'exécuter les instructions qui suivent le lancement du programme BAT, et l'appel de la variable (qui n'est pas encore définie) ne donne aucun résultat...

Existe-t-il une procédure pour savoir si le programme lancé est terminé avant d'exécuter de nouvelles instructions ? (une sorte d'instruction qui "mette en veille" le programme Delphi jusqu'à ce que le programme appellé soit terminé...)

Cordialement,
Nicolas

9 réponses

jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
16 juin 2004 à 17:35
salut,

Essaye avec cette fonction et dis moi si ca fonctionne :

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;

Bonne prog,
JMP.
3
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
20 juin 2004 à 12:16
salut

il existe le composant DosCommand, tu peux recuperer les lignes en sortie, et savoir si l'exe est fini ou pas

++
3
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
16 juin 2004 à 21:03
;) Le plus simple écolier sait maintenant des vérités pour lesquelles Archimède eut sacrifié sa vie... :)

Merci ça marche super bien !
:) :) :) :) :) :) :) :) :) :) :) :)
Bonne prog !

Nico
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
27 févr. 2005 à 11:49
gv >>
L'important, c'est que jmp77 m'ai donné la solution.
C'est un forum d'entraide non ? Donc tout va bien jusque là...
Va-t-on mettre des copyright sur les sources du site

Si une astuce est connue de plusieurs personnes, est-ce-que la première à la déposer comme source sur ce site en devient propriétaire


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
27 févr. 2005 à 12:11
Le numéro ID du code source est plus vieux que jmp presque. Qui dit qui a pompé sur qui ? (tiens je l'aime bien cette question)

===========
ViewVite : HTML
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
27 févr. 2005 à 12:15
tu sais, on s'en fout un peu....


@+
Bonne Prog'
Nico



<HR>
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
28 févr. 2005 à 09:57
Hello tout le monde,



Effectivement grandvizir ce code n'est pas de moi et d'ailleurs je n'ai
jamais prétendu le contraire. Tu sais j'ai beaucoup de morceau de code
que je récupère a droite et à gauche et je ne me souviens pas de tous
les liens.

Mais comme le dit ni69 on s'en fiche un petit peu de savoir si c'est le gars qui te depanne qui a ecit ou non la fonction.



Après recherche la fonction que j'ai donné proviens de ce lien :

http://www.phidels.com/php/index.php3?page=../php/pagetelechargementzip.php3&id=66


Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
28 févr. 2005 à 18:02
«tu sais, on s'en fout un peu»

Si je donne un lien, c'est uniquement qu'il y a plus de chances pour qu'il évolue, pas ce message. jmp a ici raison de fournir un autre lien. Arrêtons donc, ça risquerait de vous donner des points...

Sinon, je comprend pas pourquoi les liens de jmp sont toujours sans liens. Qu'on clique dessus quand même !

===========
ViewVite : HTML
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
1 mars 2005 à 10:27
Hello,



Ouais désolé pour les liens qui fonctionne pas. Cela vient du fait que
j'utilise firefox et il y a un problème de compatibilité entre firefox
et le nouvel editeur de delphifr.

Je pense que le problème sera résolu un jour prochain par les admins.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
Rejoignez-nous