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

ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 16 juin 2004 à 16:41 - Dernière réponse : jmp77 1232 Messages postés lundi 4 février 2002Date d'inscription 4 octobre 2006 Dernière intervention
- 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
jmp77 1232 Messages postés lundi 4 février 2002Date d'inscription 4 octobre 2006 Dernière intervention - 16 juin 2004 à 17:35
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.

Merci jmp77 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de jmp77
Meilleure réponse
JulioDelphi 2354 Messages postés dimanche 5 octobre 2003Date d'inscription 18 novembre 2010 Dernière intervention - 20 juin 2004 à 12:16
3
Merci
salut

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

++

Merci JulioDelphi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de JulioDelphi
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 16 juin 2004 à 21:03
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
cs_grandvizir 1237 Messages postés samedi 8 novembre 2003Date d'inscription 3 septembre 2006 Dernière intervention - 27 févr. 2005 à 11:36
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
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 27 févr. 2005 à 11:49
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
cs_grandvizir 1237 Messages postés samedi 8 novembre 2003Date d'inscription 3 septembre 2006 Dernière intervention - 27 févr. 2005 à 12:11
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
ni69 1529 Messages postés samedi 12 juin 2004Date d'inscription 5 juillet 2010 Dernière intervention - 27 févr. 2005 à 12:15
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
jmp77 1232 Messages postés lundi 4 février 2002Date d'inscription 4 octobre 2006 Dernière intervention - 28 févr. 2005 à 09:57
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
cs_grandvizir 1237 Messages postés samedi 8 novembre 2003Date d'inscription 3 septembre 2006 Dernière intervention - 28 févr. 2005 à 18:02
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
jmp77 1232 Messages postés lundi 4 février 2002Date d'inscription 4 octobre 2006 Dernière intervention - 1 mars 2005 à 10:27
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.