Déclencher une action au bout d'un certain temps d'inactivité de la souris

5/5 (5 avis)

Snippet vu 5 239 fois - Téléchargée 31 fois

Contenu du snippet

Ce petit code permet de déclancher une action (style écran de veille, ou autre ...) au bout d'un certain temps d'inactivité de la souris sur la form

Source / Exemple :


'Un timer1, enabled = True, interval = 1000.

    Dim sec As Byte

    Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
        sec = 0 'Quand la souris bouge, on remet sec à 0
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        sec = sec + 1 'Toute les seconde,sec = sec + 1
        If sec = 30 Then 'Entrez le temps d'inactivité (en secondes), pour le déclenchemnt
            MsgBox("Cela fait 30 secondes que vous n'avez pas bougé la souris") 'Ce qui doit ce passer
        End If
    End Sub

'Code programmé avec vb.net, mais fonctionnant pour vb6

A voir également

Ajouter un commentaire Commentaires
OneHacker Messages postés 1447 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 23 septembre 2007 2
13 août 2005 à 22:39
Re salut et1 ! Décidement (mort de rires) ! Je te met 9/10. Car tu m'a donné une piste ! He He j'en profite !

Bonne continuation !
NHenry Messages postés 15000 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 27 septembre 2022 158
27 avril 2005 à 14:49
Tu peux utiliser l'api GetMousePos.
Neo.balastik Messages postés 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
25 avril 2005 à 08:24
Donc ton exemple est trop restrictif et ne peut convenir, car j'ai rarement vu un programme n'ayant aucun contrôle sur un formulaire ;O)

Pour réussir cela, il faut s'affranchir de l'événement Mouse_Move du formulaire.
cs_et1 Messages postés 250 Date d'inscription vendredi 14 janvier 2005 Statut Membre Dernière intervention 27 janvier 2011 9
24 avril 2005 à 16:13
Je sais que si l'on survole un autre contrôle, ça ne fonctionnera pas, c'est pourquoi j'ai bien mis "...souris sur la form"
Mais je ne sais pas comment faire ça autrement.
Neo.balastik Messages postés 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
24 avril 2005 à 11:24
Ce programme ne peut pas fonctionner correctement en VB6 ! Sache que l'événement MouseMove du formulaire ne sera pas déclenché si le souris survole un un contrôle inclus dans le formulaire. Un simple exemple : crée un formulaire, intègre une picturebox assez large et ce code :

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.Caption = X & " - " & Y
End Sub

Tu remarqueras que lorsque tu survoles le formulaire sans survoler le pictuebox, la captionbar du formulaire affiche bien les coordonnées X et Y de la souris, mais lorsque la souris survole la picturebox, l'événement MouseMove du formulaire n'est pas déclenché...
Tu me diras qu'il suffirait de faire de même pour l'événement MouseMove de la picturebox, mais que je sache un formulaire contient très souvent de nombreux contrôles... Alors galère ! Cette façon de faire est trop simplissime pour VB6 et ne fonctionnera pas. Je ne sais pas ce qu'il en est pour VB.NET...

Guy

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.