URGENT !!! : Attendre l'achèvement d'un programme avant de lancer d'autres instr [Résolu]

Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
- - Dernière réponse : jmp77
Messages postés
1232
Date d'inscription
lundi 4 février 2002
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
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jmp77
Messages postés
2354
Date d'inscription
dimanche 5 octobre 2003
Dernière intervention
18 novembre 2010
3
Merci
salut

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

++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de JulioDelphi
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
0
Merci
;) 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
Commenter la réponse de ni69
Messages postés
1237
Date d'inscription
samedi 8 novembre 2003
Dernière intervention
3 septembre 2006
0
Merci
On ne copie pas, on cite:
http://www.delphifr.com/code.aspx?ID=11919

Si MAJ, alors on sera prévenus...

===========
ViewVite : HTML
Commenter la réponse de cs_grandvizir
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
0
Merci
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 !
Commenter la réponse de ni69
Messages postés
1237
Date d'inscription
samedi 8 novembre 2003
Dernière intervention
3 septembre 2006
0
Merci
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
Commenter la réponse de cs_grandvizir
Messages postés
1529
Date d'inscription
samedi 12 juin 2004
Dernière intervention
5 juillet 2010
0
Merci
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 !
Commenter la réponse de ni69
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
0
Merci
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.
Commenter la réponse de jmp77
Messages postés
1237
Date d'inscription
samedi 8 novembre 2003
Dernière intervention
3 septembre 2006
0
Merci
«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
Commenter la réponse de cs_grandvizir
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
0
Merci
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.
Commenter la réponse de jmp77

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.