[ASTUCE] MESSAGEBOX QUI N'ARRETE PAS LE PROCESSUS COURANT

cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 - 19 sept. 2005 à 15:16
78zerocool Messages postés 22 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 20 juillet 2011 - 11 déc. 2011 à 22:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33847-astuce-messagebox-qui-n-arrete-pas-le-processus-courant

78zerocool Messages postés 22 Date d'inscription jeudi 13 janvier 2011 Statut Membre Dernière intervention 20 juillet 2011
11 déc. 2011 à 22:43
ya encor plus simple tu cree une nouvelle form ...
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 août 2008 à 21:10
de mémoire me semble que ce code était bel et bien utile sous XPSP1.
il l'est toujours (rappel : 'MSGBOX' bloque le thread de l'appli, pas 'MessageBox') sous Win2000 SP4

par contre en effet, sous win2003RS2 le MSGBOX classique ne bloque pas l'appli

(pas d'XPSP2 ou 3 à portée de main)
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
6 août 2008 à 20:55
moi aussi (j'attends la réponse)
cs_Golard Messages postés 7 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 23 septembre 2010
6 août 2008 à 12:40
"Essayes donc le code proposé. Dans VB6 (même sous XP), mettre une Form avec un Label, 2 boutons, et un Timer..."
Déjà fait avant mon premier commentaire.
J'ai compilé le code de econs sous Vb6 SP5 (Version 8988 VBA: Retail 6.0.8964 Forms3: 11.0.5601)
Sous XP SP2 : pas de blocage, ni par Command1, ni par Command2
Sous Vista SP1 : idem

"... et relis le 1er d'Alain Proviste"
C'est bien le timer de l'application dont la valeur est écrite dans le Label dont je parle.

" Aurais-je loupé quelquechose ? Oui."
Oui... mais quoi ????

Merci Us de ta réponse rapide. Peux-tu toi-même refaire le test?
Je reste pour l'instant interrogatif !!! Et j'attends ta réponse...

Amicalement,
Golard.
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
6 août 2008 à 12:12
" Vrai ou faux ? "
Faux.

" Aurais-je loupé quelquechose ? "
Oui.

Essayes donc le code proposé. Dans VB6 (même sous XP), mettre une Form avec un Label, 2 boutons, et un Timer...

... et relis le 1er d'Alain Proviste, c'est peut-être là ta confusion...

Amicalement,
Us.
cs_Golard Messages postés 7 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 23 septembre 2010
6 août 2008 à 11:04
Salut à tous,

Je ravive un peu ces anciens commentaires avec celui-ci:

Si je ne me trompe pas, MsgBox NE BLOQUE PLUS L'APPLI sous XP.
En effet, sous XP (idem sous Vista) le timer de l'exemple fournit par econs n'ai pluis bloqué, quelque soit la méthode utilisée.

Vrai ou faux ? Aurais-je loupé quelquechose ?
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
10 déc. 2006 à 19:01
Salut Econs,

Merci de cette function qui m'est très utile et de ta réponse dans le forum...
A+
10/10
Exploreur
amezghal Messages postés 385 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 21 août 2015 5
11 avril 2006 à 14:37
vous ne pensez pas que si en elmine l arret des processus en risque que le msgbox ne retourne rien
donc c en met
response=msgbox("test",vbokonly)
alors response devient nothing ?
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
1 nov. 2005 à 10:07
... et bien, pour moi, c'est 10/10 ! Cela enlève une limitation de VB de simple et élégante ! (et courte !) qui était quelques fois gênante...

Amicalement,
Us.
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
21 sept. 2005 à 21:23
ptetre à cause de lautre source du site qui elle passe part un autre thread
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
21 sept. 2005 à 16:50
Yep en effet autant pour moi...
Je sais pas pq j'avais en tete que c'etait dans un autre thread

Enfin bon le principe est le meme ;)

@+
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 sept. 2005 à 11:36
Pas du tout, MessageBox pas plus que nimporte quelle autre affichage de fenêtre ne crée de thread.
Il faut demander avant d'affirmer nimporte quoi. L'appel interne à DialogBoxParam avec 0 en fenêtre mère crée simplement une fenêtre non modale, absolument rien de plus.
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
21 sept. 2005 à 11:18
Yep "toute l'appli" dont tu parle c'est le thread principal de ton appli, la messageBox va elle ouvrir un deuxieme thread de maniere a tourner independament du reste de l'appli...

Ce qui a pour consequence que ton appli n'est pas stoppee en attendant que l'utilisateur ne clic sur la MessageBox, cela peut etre tres utilile dans certains cas mais dans la plupart des cas il est preferable d'utiliser une MessageBox ordinaire (dans le meme thread)

Bonne prog @+
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
21 sept. 2005 à 03:25
Comme moi p.ex.!
Ce que je pige pas c'est que ça ne fonctionne qu'avec un timer ou toute l'apli continue à tourner en attendant!?!?
Sinon, faudrait en faire un ptit OCX... D'ailleurs, franchement, faudrait un jour faire un "pack" d'OCX regroupant les quelques APIs les plus courantes un peu à la manière du framework .Net mais pour VB6 (histoire de préserver encore un peu notre tant aimé VB6 ;-)...
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
20 sept. 2005 à 11:46
Salut,

Eh je dirai que c'est du deja vu et revu....

M'enfin apparement y en a plusieurs qui ne l'avaientt jamais vu donc ;)

@+
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
19 sept. 2005 à 23:47
avec messagebox 0 on a une nouvel element dans la barre des taches de windows, ce qui est aussi un probleme à régler
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
19 sept. 2005 à 21:47
sans bloquer l'appli :
MessageBox 0, "ah ouai...", "___", 32
PCPT
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 sept. 2005 à 19:59
On peut même dire que la seule chose incertaine avec un thread en VB est le moment du plantage mais plantage il finit par y avoir.
Neo.balastik Messages postés 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
19 sept. 2005 à 19:36
Vu qu'implanter un thread en VB est périlleux et incertain,...
Aussi, l'exemple proposé ici bloque tout de même le code jusqu'à ce que l'utilisateur ferme la messagebox tout en ne bloquant pas l'entièreté du processus.
Via le thread, je suppose que rien n'était bloqué. Ce qui est le but d'un thread.
Donc, les 2 exemples ne sont pas vraiment comparables.

Guy
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
19 sept. 2005 à 19:20
C'est du déjà vu, mais celui que j'ai vu avant utilisait un thread :O
Mikaels35 Messages postés 146 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 17 novembre 2009 2
19 sept. 2005 à 17:19
Excellent, j'en avais assez de ces MSGBOX qui bloquent le programme en cours!
Neo.balastik Messages postés 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
19 sept. 2005 à 16:39
Bien bien...
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
19 sept. 2005 à 15:20
oui, bien entendu. C'est un peu 'raccourci' la chose ;o)
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
19 sept. 2005 à 15:16
la fonction msgbox n'arrete pas tous les processus qui tournent, seulement celui de ton application, n'est-ce pas
Rejoignez-nous