[VB] Attendre la fin d'un programme

Attendre la fin d'un programme [VB] - Programmation

Marsh Posté le 11-10-2001 à 08:37:14    

Salut a tous :hello:
 
Il faudrait que je balance un prog avec shell en vb, mais que le code ne s'execute seulement quand le prog lance se termine.
 
Quelqu'un sait faire ca ?
 
MErci ;)

Reply

Marsh Posté le 11-10-2001 à 08:37:14   

Reply

Marsh Posté le 11-10-2001 à 09:10:27    

slt,
 
Tu dblclik sur la form (pas un des objets, sur la form en elle même), tu choisis dans la liste déroulante ('déclaration' je crois) "unload" au lieu de "load".
Ensuite tu tapes ton code qui doit s'exécuter à la fin du prog, et il s'exécute lorsque la form s'unload (se ferme, quoi...)
 
J'espère que t'as compris mon élocution bizarre ;-)
 
juju


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 11-10-2001 à 09:20:40    

J'ai du mal m'exprimer.
 
Je lance un prog d'installation par la commande shell.
Le pb c'est que le code continue a s'exectuer alors que le programme d'installation n'est pas fini. Je veux attendre que ce programme d'installation soit fini pour continuer mon code.
 
Pour te donner un exemple concret:
Si dans une boucle tu fais apparaitre une form, il faut que celle si soit modale.
Si elle est modale, alors la boucle s'arrete et attends que tu fermes la fenetre. SI elle n'est pas modale, alors la boucle continue et tu ne peux rien faire dans ta fenetre.
 
Je veux ouvrir un prog comme une fenetre en modal.
 
Voila... :)

Reply

Marsh Posté le 11-10-2001 à 09:31:48    

Il me semble que dans ShellExecute, il y a une option pour attendre que ce soit fini (pour l'appli "shell_exécutée" ).
 
?
http://forum.hardware.fr/forum2.ph [...] &owntopic=

Reply

Marsh Posté le 11-10-2001 à 09:35:47    

Ok je vais voir ca
Merci ;)
 
J'te tiens au courant :)

Reply

Marsh Posté le 11-10-2001 à 09:47:40    

Apparemment il s'arrete pas non plus.
Dans le msdn j'ai rien trouve qui disait que le programme etait lance de maniere synchrone.
 
J'ai la ligne de commande suivante:
 
ShellExecute 0, vbStringNull, "C:\Winnt\system32\calc.exe", vbStringNull, vbStringNull, SW_SHOWNORMAL

Reply

Marsh Posté le 11-10-2001 à 10:13:27    

Tu devrais trouver des exemples de code lancant un programme et attendant la fin de son execution sur un certain nombre de sites consacrés à VB. Tu pourras trouver une liste de sites la :
 
http://www.vbug.co.uk/wlink/OtherVB.asp
 
Sinon pour ton problème tu peux utiliser les fonctions de l'api Win32 pour lancer et attendre la fin d'execution de ton application. Les fonctions a utilier sont :  
 
- CreateProcess pour créer un process executant l'application externe
- WaitForSingleObject ou WaitForMultipleObjects pour attendre la fin d'execution selon le cas.
 
Je te conseille fortement de regarder l'aide online du MSDN pour ces fonctions et les concepts de synchronisation dans Win32.
 
Process et Threads :
 
http://msdn.microsoft.com/library/ [...] d_3mgj.asp
 
Synchronisation :
 
http://msdn.microsoft.com/library/ [...] o_08z7.asp

Reply

Marsh Posté le 11-10-2001 à 10:40:35    

J'etais justement en train de chercher des infos sur WaitForSingleObject.
Ca risque d'etre un peu plus complique que prevu.
 
Merci pour tes infos je vais aller y jeter un coup d'oeil ;)

Reply

Marsh Posté le 11-10-2001 à 10:45:09    

truc a la con : tu peux pas faire un FindWindow (c'est du c mais doit avoir l eq en vb) et tant que trouve la fenetre du programme d'install tu poireaute ?

Reply

Marsh Posté le 11-10-2001 à 10:58:32    

Ben le programme marche deja.
Il teste les processus et fait une boucle tant que les processus sont la.
Mais c'est pas optimise

Reply

Marsh Posté le 11-10-2001 à 10:58:32   

Reply

Marsh Posté le 11-10-2001 à 11:57:49    

Merci encore Guru pour tes infos, ca marche niquel maintenant ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed