Application ouvert ou pas ?

Résolu
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012 - 12 juin 2005 à 10:22
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 16 juin 2005 à 23:26
Salut à tous,

Avec VB6, je lance une application X avec la commande shell :

i=Shell(...)

comment detecter quand l'application sera fermé ?



merci

5 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
12 juin 2005 à 10:48
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long







Private Sub Command1_Click()

Dim Hwnd As Long



Shell "notepad", vbNormalFocus



While Hwnd = 0

Hwnd = FindWindow(vbNullString, "Sans titre - Bloc-notes")

DoEvents

Wend



While Hwnd > 0

Hwnd = FindWindow(vbNullString, "Sans titre - Bloc-notes")

DoEvents

Wend



End Sub


Daniel
3
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
13 juin 2005 à 08:39
Merci Daniel ça marche nickel.



Il y'a toutefois une limitation à la procédure :

Je pense que cela ne marchera plus, si dans ton exemple du NotePad

l'utilisateur enregistre son fichier (lui donne un nom explicite autre que "Sans titre").



Ne soyons pas royaliste que le roi, il s'avère que dans mon cas

l'application s'ouvre justement déja avec le nom définitif.

Donc pas de problème



Encore merci



Rachid
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
13 juin 2005 à 09:01
en vb6.0, shellexecute permet pas d'attendre que l'usager ferme l'application comme vb.net permet de le faire ???

j'ai un trou de mémoire là


-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
0
m2rtech Messages postés 239 Date d'inscription mercredi 9 octobre 2002 Statut Membre Dernière intervention 20 février 2012
16 juin 2005 à 23:10
Salut,

J'ai jamais prétendu que Shell permettais une quelconque attente.

Si cela avais été le cas, y'aurais meme pas de probleme (donc pas de question).

En fait le probleme est justement d'attendre qu'une fenetre se ferme.

Et la ton code répond pafaitement à la question

While Hwnd > 0

Hwnd = FindWindow(vbNullString, "Sans titre - Bloc-notes")

DoEvents

Wend



On attend dans la boucle, pas dans le Shell.

Mais ma reflexion (si je puis me permettre) porte sur le fait qu'une personne renomme

la fenetre pendant que la boucle tourne, puis quitte celle-ci !



faut que j'essaie.



Mais grace à toi, mon travail a bien évolué et je t'en remercie encore.
0

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

Posez votre question
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
16 juin 2005 à 23:26
en vb6.0 je suis d'accord que shell attend pas
je parle de shellexecute l'API

en vb.net, le shell peut attendre sans problème


-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
0
Rejoignez-nous