MsgBox qui s'affiche pendant x secondes et se ferme automatique

Patrick02170 Messages postés 58 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 juin 2016 - 7 févr. 2015 à 12:44
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 7 févr. 2015 à 16:59
Bonjour,

es ce qu'il existe un moyen pour afficher une MsgBox d'information est qui se ferme automatiquement en bout de x secondes.

J'ai trouver ce code mes rien ne se passe mise à part l'affichage de la MsgBox. Es ce qu'il faut mètre un TIMER ou ... ?

Sub MsgBoxTmp()
Dim SH As Object
SH = CreateObject("WScript.Shell")
SH.Popup("Le message qui disparait aprés 3 secondes", 3, "3 secondes", 48)
SH = Nothing

3 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
7 févr. 2015 à 16:57
Bonjour,

On peut faire une MsgBox avec fermeture temporisée comme ceci:

Mettre un bouton et un Timer

Option Strict On
Public Class Form1
    'http://stackoverflow.com/questions/11255118/vb-net-close-window-by-title
    Private Declare Auto Function FindWindowEx Lib "user32" (ByVal parentHandle As Integer, _
                                              ByVal childAfter As Integer, _
                                              ByVal lclassName As String, _
                                              ByVal windowTitle As String) As Integer

    Private Declare Auto Function PostMessage Lib "user32" (ByVal hwnd As Integer, _
                                                            ByVal message As UInteger, _
                                                            ByVal wParam As Integer, _
                                                            ByVal lParam As Integer) As Boolean

    Dim WM_QUIT As UInteger = &H12
    Dim WM_CLOSE As UInteger = &H10
    Dim titre As String
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Timer1.Interval = 3000  '3 secondes
        Timer1.Enabled = True
        titre = "Message Box Temporisée"
        MessageBox.Show("Durée de l'information : 3 secondes", titre, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
        Timer1.Enabled = False
    End Sub
    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        Dim handle As Integer = FindWindowEx(0, 0, Nothing, titre)
        PostMessage(handle, WM_CLOSE, 0, 0)
    End Sub
End Class



1
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
7 févr. 2015 à 12:49
Le seul moyen est de faire une form personnalisée.
Tu fais bien du .NET (catégorie dans la quelle où tu as posté) ou une autre version de VB ?
0
Patrick02170 Messages postés 58 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 juin 2016
7 févr. 2015 à 12:54
Je travail sur visual studio 2012 en visual basic.

--
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
7 févr. 2015 à 12:58
MessageBox.Show est largement plus propre pour ouvrir une MessageBox.
0
Patrick02170 Messages postés 58 Date d'inscription dimanche 27 mars 2011 Statut Membre Dernière intervention 28 juin 2016
7 févr. 2015 à 13:09
Au juste je veux mettre un code qui fait attendre AU maximum 5 secondes avant de poursuivre dans le même (Private Sub ....)
sans être embêter de CLIQUER ok à chaque fois.

si impossible avec une msgbox peux être avec une progresse bar ?
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
7 févr. 2015 à 13:29
Il faudra à ce moment là, forcément faire la fenêtre toi-même, ce n'est pas possible de le faire avec les Messagebox par défaut.
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
7 févr. 2015 à 16:59
Bonjour,

Je ne code pas en .Net mais un Popup permet d'afficher un message pendant un laps de temps prédéfini puis de continuer le script.

check = Now
Call WScript.CreateObject("WScript.Shell").Popup(check & vbcrlf &_
"Ce message apparait pendant 10 secondes", 10, "Test Popup", 48)
MsgBox "Popup actif 10 secondes :" & Space(2) & check & vbcrlf &_
"Suite du script :" & Space(20) & Now
0
Rejoignez-nous