Index du Forum




 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Comment simuler un clique de souris n'importe ou

 
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> Visual Basic.Net -> Exemples de code
Sujet précédent :: Sujet suivant  
Auteur Message
Dayvid
Administrateur

Hors ligne

Inscrit le: 24 Oct 2012
Messages: 89
Localisation: Vienne - Poitiers (86000)
Masculin Lion (24juil-23aoû)
Point(s): 107
Moyenne de points: 1,20

MessagePosté le: Ven 29 Aoû 2014 - 16:21    Sujet du message: Comment simuler un clique de souris n'importe ou Répondre en citant

Bonjour,

Voici comment simuler très simplement diverses clique de souris sans pour autant utiliser votre souris:
Créer un nouveau projet WindowForm, mettez-ci un bouton et collez se code-ci:

Code:
Imports System.Threading

Public Class Form1

    ' Cette fonction génère des évènements souris. Vous pouvez ainsi déplacer la souris ou appuyer sur ces boutons rien qu'en utilisant cette API.
    ' dwFlags contient un ou plusieurs des constantes du tableau ci-dessous,
    ' dx et dy indiquent une position absolue ou relative (dépend de dwFlags égal à MOUSEEVENTF_ABSOLUTE ou non),
    ' cButtons et dwExtraInfo doivent être mis à 0.

    Declare Sub MouseEvent Lib "user32" Alias "mouse_event" (ByVal dwFlags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal cButtons As Integer, ByVal dwExtraInfo As Integer)

    ' Public Const MOUSEEVENTF_ABSOLUTE = &H8000 ' Les coordonnées sont indiquées en absolue (entre 0 et 65535).

    Public Const MOUSE_EVENT_LEFT_DOWN = 2 ' Simule une pression sur le bouton gauche de la souris.
    Public Const MOUSE_EVENT_LEFT_UP = 4 ' Simule un relâchement du bouton gauche de la souris.

    Public Const MOUSE_EVENT_MIDDLE_DOWN = 32 ' Simule une pression sur le bouton du milieu de la souris.
    Public Const MOUSE_EVENT_MIDDLE_UP = 64 ' Simule un relâchement du bouton du milieu de la souris.

    Public Const MOUSE_EVENT_RIGHT_DOWN = 8 ' Simule une pression sur le bouton droit de la souris.
    Public Const MOUSE_EVENT_RIGHT_UP = 16 ' Simule un relâchement du bouton droit de la souris.

    Private Const MOUSE_EVENT_X_DOWNN = 128 ' Simule une pression sur le bouton suivent ou précédent de la souris.
    Private Const MOUSE_EVENT_X_UP = 256 ' Simule un relâchement du bouton suivent ou précédent de la souris.

    Private Const MOUSE_EVENT_WHEEL = 2048 ' Simule un déplacement de la molètte de la souris.

    Private Const MOUSE_EVENT_WHEEL_DELTA_UP = 120 ' Sens du déplacement de la molètte de la souris, 120 = vers le haut, -120 = vers le bas.
    Private Const MOUSE_EVENT_WHEEL_DELTA_DOWN = -120 ' Sens du déplacement de la molètte de la souris, 120 = vers le haut, -120 = vers le bas.

    Private Sub SimulerCliqueSouris(ByVal PositionSourisX As Integer, ByVal PositionSourisY As Integer, ByVal BoutonSouris As Integer, ByVal Mode As Integer)

        ' Positionne le curseur de la souris aux coordonnées PositionSourisX et PositionSourisY indiqué.
        Cursor.Position = New Point(PositionSourisX, PositionSourisY)

        ' Simule le clique de souris.
        MouseEvent(BoutonSouris, 0, 0, Mode, 0) ' Mode sert pour basculer entre 0 (Bouton Droite, Gauche, Milieux), 1 = X1 (Bouton Suivant), 2 = X2 (Bouton Précédent)

    End Sub

    Private Sub Form1_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
        Debug.WriteLine("Vous avez Appuyez sur: " & e.Button.ToString)
    End Sub

    Private Sub Form1_MouseUp(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp
        Debug.WriteLine("Vous avez relacher le bouton: " & e.Button.ToString)
    End Sub

    Private Sub Form1_MouseWheel(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
        If e.Delta > 0 Then
            Debug.WriteLine("Vous avez tourner la molètte de la souris vers le haut: " & e.Delta)
        Else
            Debug.WriteLine("Vous avez tourner la molètte de la souris vers le bas: " & e.Delta)
        End If
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

        Button1.Enabled = False

        Thread.Sleep(1000)

        Me.Focus()

        ' On appuie sur le bouton 'gauche' de la souris
        SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSE_EVENT_LEFT_DOWN, 0)
        Application.DoEvents()

        Thread.Sleep(1000)

        Me.Focus()

        ' On relâche le bouton 'gauche' de la souris
        SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSE_EVENT_LEFT_UP, 0)
        Application.DoEvents()

        Thread.Sleep(1000)

        Me.Focus()

        ' On appuie sur le bouton 'droit' de la souris
        SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSE_EVENT_RIGHT_DOWN, 0)
        Application.DoEvents()

        Thread.Sleep(1000)

        Me.Focus()

        ' On relâche le bouton 'droit' de la souris
        SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSE_EVENT_RIGHT_UP, 0)
        Application.DoEvents()

        Thread.Sleep(1000)

        Me.Focus()

        ' On appuie sur le bouton 'centrale' de la souris
        SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSE_EVENT_MIDDLE_DOWN, 0)
        Application.DoEvents()

        Thread.Sleep(1000)

        Me.Focus()

        ' On relâche le bouton 'centrale' de la souris
        SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSE_EVENT_MIDDLE_UP, 0)
        Application.DoEvents()

        Thread.Sleep(1000)

        Me.Focus()

        ' On appuie sur le bouton 'suivent' de la souris
        SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSE_EVENT_X_DOWNN, 1)
        Application.DoEvents()

        Thread.Sleep(1000)

        Me.Focus()

        ' On relâche le bouton 'suivent' de la souris
        SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSE_EVENT_X_UP, 1)
        Application.DoEvents()

        Thread.Sleep(1000)

        Me.Focus()

        ' On appuie sur le bouton 'précédent' de la souris
        SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSE_EVENT_X_DOWNN, 2)
        Application.DoEvents()

        Thread.Sleep(1000)

        Me.Focus()

        ' On relâche le bouton 'précédent' de la souris
        SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSE_EVENT_X_UP, 2)
        Application.DoEvents()

        Thread.Sleep(1000)

        Me.Focus()

        ' On pousse la molette de la souris vers le haut
        SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSE_EVENT_WHEEL, MOUSE_EVENT_WHEEL_DELTA_UP)
        Application.DoEvents()

        Thread.Sleep(1000)

        Me.Focus()

        ' On pousse la molette de la souris vers le bas
        SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSE_EVENT_WHEEL, MOUSE_EVENT_WHEEL_DELTA_DOWN)
        Application.DoEvents()

        Button1.Enabled = True

    End Sub

End Class

Ainsi quand vous appuierez sur le bouton, des cliques de souris seront simuler sur la fenêtre !
Mais rien ne vous empêche de changer la position de la souris pour cliquer ailleurs, ça fonctionne n'importe ou Heureux

Le résultat serra:
Citation:
Vous avez Appuyez sur: Left
Vous avez relâcher le bouton: Left
Vous avez Appuyez sur: Right
Vous avez relâcher le bouton: Right
Vous avez Appuyez sur: Middle
Vous avez relâcher le bouton: Middle
Vous avez Appuyez sur: XButton1
Vous avez relâcher le bouton: XButton1
Vous avez Appuyez sur: XButton2
Vous avez relâcher le bouton: XButton2
Vous avez tourner la molète de la souris vers le haut: 120
Vous avez tourner la molète de la souris vers le bas: -120


N'hésitez pas à donner vos avis Clin d'œil / Conseil
_________________
Le respect n'est pas en option, mais une obligation !
Je serai intransigeant sur ce point-ci !

Veuillez s'il vous plait, aider les membres du mieux que vous le pouvez,
mais ne faites pas tout à leur place non plus, car ce n'est pas les aider !
La programmation est déjà assez difficile comme ça !


Revenir en haut
Publicité






MessagePosté le: Ven 29 Aoû 2014 - 16:21    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> Visual Basic.Net -> Exemples de code Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  

Index | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com