IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Simuler un clique de souris n'importe ou.. simulation de la roulette de la souris


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Aucune
    Inscrit en
    Mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune

    Informations forums :
    Inscription : Mars 2014
    Messages : 34
    Points : 11
    Points
    11
    Par défaut Simuler un clique de souris n'importe ou.. simulation de la roulette de la souris
    Bonjour,

    Je suis parvenue à créer ceci en piochant à droite à gauche et en faisant ma petite mixture moi même:

    Il faut créer une form avec un bouton, quand on clique sur le bouton
    alors la simulation des cliques de souris commence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    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 MOUSEEVENTF_LEFTDOWN = 2 ' Simule une pression sur le bouton gauche de la souris.
        Public Const MOUSEEVENTF_LEFTUP = 4 ' Simule un relâchement du bouton gauche de la souris.
     
        Public Const MOUSEEVENTF_MIDDLEDO = 32 ' Simule une pression sur le bouton du milieu de la souris.
        Public Const MOUSEEVENTF_MIDDLEUP = 64 ' Simule un relâchement du bouton du milieu de la souris.
     
        Public Const MOUSEEVENTF_RIGHTDOW = 8 ' Simule une pression sur le bouton droit de la souris.
        Public Const MOUSEEVENTF_RIGHTUP = 16 ' Simule un relâchement du bouton droit de la souris.
     
        Private Const MOUSEEVENTF_XDOWN = 128 ' Simule une pression sur le bouton suivent ou précédent de la souris.
        Private Const MOUSEEVENTF_XUP = 256 ' Simule un relâchement du bouton suivent ou précédent de la souris.
     
        ' A venir
        Private Const MOUSEEVENTF_WHEEL = 128 ' Simule un déplacement de la molètte de la souris.
        Private Const WHEEL_DELTA = 120 ' ?
     
     
        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 Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
     
            Button1.Enabled = False
     
            Thread.Sleep(1000)
     
            ' On appuie sur le bouton 'gauche' de la souris
            SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSEEVENTF_LEFTDOWN, 0)
            Application.DoEvents()
     
            Thread.Sleep(1000)
     
            ' On relâche le bouton 'gauche' de la souris
            SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSEEVENTF_LEFTUP, 0)
            Application.DoEvents()
     
            Thread.Sleep(1000)
     
            ' On appuie sur le bouton 'droit' de la souris
            SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSEEVENTF_RIGHTDOW, 0)
            Application.DoEvents()
     
            Thread.Sleep(1000)
     
            ' On relâche le bouton 'droit' de la souris
            SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSEEVENTF_RIGHTUP, 0)
            Application.DoEvents()
     
            Thread.Sleep(1000)
     
            ' On appuie sur le bouton 'centrale' de la souris
            SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSEEVENTF_MIDDLEDO, 0)
            Application.DoEvents()
     
            Thread.Sleep(1000)
     
            ' On relâche le bouton 'centrale' de la souris
            SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSEEVENTF_MIDDLEUP, 0)
            Application.DoEvents()
     
            Thread.Sleep(1000)
     
            ' On appuie sur le bouton 'suivent' de la souris
            SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSEEVENTF_XDOWN, 1)
            Application.DoEvents()
     
            Thread.Sleep(1000)
     
            ' On relâche le bouton 'suivent' de la souris
            SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSEEVENTF_XUP, 1)
            Application.DoEvents()
     
            Thread.Sleep(1000)
     
            ' On appuie sur le bouton 'précédent' de la souris
            SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSEEVENTF_XDOWN, 2)
            Application.DoEvents()
     
            Thread.Sleep(1000)
     
            ' On relâche le bouton 'précédent' de la souris
            SimulerCliqueSouris(Location.X + (Width / 2), Location.Y + (Height / 3), MOUSEEVENTF_XUP, 2)
            Application.DoEvents()
     
            Button1.Enabled = True
     
        End Sub
     
    End Class
    Cependant, je ne sais pas du tous comment simuler un déplacement de la roulette de la souris
    en bas et en haut, à supposer que se soit possible ?

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    google
    api windows mouse wheel simulate
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    un label : (label1) ; deux boutons : (btnRouletteHaut) et (btnRouletteBas)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Public Class frmSouris
        ' event roulette - tester en direct avec la roulette pour voir l'effet (dépacement du label) - puis cliquer sur les boutons
        Private Sub frmSouris_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
            If e.Delta > 0 Then
                If Label1.Top > 10 Then Label1.Top -= 10
                Label1.Text = "Up ; " & Label1.Top
            Else
                If Label1.Top + Label1.Height < Me.Height - 50 Then Label1.Top += 10
                Label1.Text = "Down ; " & Label1.Top
            End If
        End Sub
        ' simule l'évenement de la roulette (et provoque le dépacement du label comme la roulette)
        Sub simuleRoulette(sens As Integer)
            ' génère l'évenement roulette
            frmSouris_MouseWheel(Me, New System.Windows.Forms.MouseEventArgs(Windows.Forms.MouseButtons.None, 0, Me.Location.X, Me.Location.Y, sens))
        End Sub
     
        Private Sub btnRouletteHaut_Click(sender As System.Object, e As System.EventArgs) Handles btnRouletteHaut.Click
            simuleRoulette(1)
        End Sub
     
        Private Sub btnRouletteBas_Click(sender As System.Object, e As System.EventArgs) Handles btnRouletteBas.Click
            simuleRoulette(-1)
        End Sub
     
    End Class
    1 - utiliser la roulette pour voir l'effet (déplacement du label)
    2 - cliquer sur les boutons - simulera la roulette (déplacement du label)
    Note : j'ai utilisé le delta seulement pour définir le sens, on pourrai bien sur exploiter la valeur réelle.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Aucune
    Inscrit en
    Mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune

    Informations forums :
    Inscription : Mars 2014
    Messages : 34
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Tout d’abord merci beaucoup, ça marche Ni quel
    Cependant bien que ceci me soit aussi utile, je voudrait simuler un déplacement de roulette peut importe ou je soit, dans une appli quelconque, sur le bureau, bref n'importe ou

    C'est se que fais mon code, enfin ici c'est un exemple avec
    une fenêtre mais ça fonctionne ailleurs, j'ai fais des tests et peut importe ou je clique ça marche

    En faite je voudrait interagir directement avec la souris peut importe ou elle se trouve comme si je la contrôlais moi même
    Je cherche a faire un keylogger c'est pour ça

    Mon code est un commencement, me manque plus que simuler la roulette.
    Merci ^^

    Édit: J'ai trouvé se code sur le net mais je ne sait pas du tout m'en servir ! -> http://www.vbforums.com/showthread.p...Wheel-rotation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    Imports System.Runtime.InteropServices
     
    Public Class SendInput
     
        Public Class Mouse
            <Flags()> _
            Public Enum MouseEventFlags As Int32
                LEFTDOWN = &H2 : LEFTUP = &H4
                MIDDLEDOWN = &H20 : MIDDLEUP = &H40
                RIGHTDOWN = &H8 : RIGHTUP = &H10
                WHEEL = &H800 : XDOWN = &H80 : XUP = &H100 : ABSOLUTE = &H8000 : MOVE = &H1
            End Enum
     
    #Region "Left Button"
     
            Public Overloads Shared Sub LeftDown()
                Dim pt As Point = Cursor.Position
                MouseKey(pt.X, pt.Y, MouseEventFlags.LEFTDOWN)
            End Sub
     
            Public Overloads Shared Sub LeftDown(ByVal x As Integer, ByVal y As Integer)
                MouseKey(x, y, MouseEventFlags.LEFTDOWN)
            End Sub
     
            Public Overloads Shared Sub Leftup()
                Dim pt As Point = Cursor.Position
                MouseKey(pt.X, pt.Y, MouseEventFlags.LEFTUP)
            End Sub
     
            Public Overloads Shared Sub Leftup(ByVal x As Integer, ByVal y As Integer)
                MouseKey(x, y, MouseEventFlags.LEFTUP)
            End Sub
     
            Public Overloads Shared Sub LeftClick()
                Dim pt As Point = Cursor.Position
                Click(pt.X, pt.Y, MouseEventFlags.LEFTDOWN, MouseEventFlags.LEFTUP)
            End Sub
     
            Public Overloads Shared Sub LeftClick(ByVal pt As Point)
                Click(pt.X, pt.Y, MouseEventFlags.LEFTDOWN, MouseEventFlags.LEFTUP)
            End Sub
     
            Public Overloads Shared Sub LeftClick(ByVal x As Integer, ByVal y As Integer)
                Click(x, y, MouseEventFlags.LEFTDOWN, MouseEventFlags.LEFTUP)
            End Sub
     
    #End Region
     
    #Region "Right Button"
     
            Public Overloads Shared Sub RightDown()
                Dim pt As Point = Cursor.Position
                MouseKey(pt.X, pt.Y, MouseEventFlags.RIGHTDOWN)
            End Sub
     
            Public Overloads Shared Sub RightDown(ByVal x As Integer, ByVal y As Integer)
                MouseKey(x, y, MouseEventFlags.RIGHTDOWN)
            End Sub
     
            Public Overloads Shared Sub RightUp()
                Dim pt As Point = Cursor.Position
                MouseKey(pt.X, pt.Y, MouseEventFlags.RIGHTUP)
            End Sub
     
            Public Overloads Shared Sub RightUp(ByVal x As Integer, ByVal y As Integer)
                MouseKey(x, y, MouseEventFlags.RIGHTUP)
            End Sub
     
            Public Overloads Shared Sub RightClick()
                Dim pt As Point = Cursor.Position
                Click(pt.X, pt.Y, MouseEventFlags.RIGHTDOWN, MouseEventFlags.RIGHTUP)
            End Sub
     
            Public Overloads Shared Sub RightClick(ByVal x As Integer, ByVal y As Integer)
                Click(x, y, MouseEventFlags.RIGHTDOWN, MouseEventFlags.RIGHTUP)
            End Sub
     
            Public Overloads Shared Sub RightClick(ByVal pt As Point)
                Click(pt.X, pt.Y, MouseEventFlags.RIGHTDOWN, MouseEventFlags.RIGHTUP)
            End Sub
    #End Region
     
    #Region "Middle Button"
     
            Public Overloads Shared Sub MiddleDown()
                Dim pt As Point = Cursor.Position
                MouseKey(pt.X, pt.Y, MouseEventFlags.MIDDLEDOWN)
            End Sub
     
            Public Overloads Shared Sub MiddleDown(ByVal x As Integer, ByVal y As Integer)
                MouseKey(x, y, MouseEventFlags.MIDDLEDOWN)
            End Sub
     
            Public Overloads Shared Sub MiddleUp()
                Dim pt As Point = Cursor.Position
                MouseKey(pt.X, pt.Y, MouseEventFlags.MIDDLEUP)
            End Sub
     
            Public Overloads Shared Sub MiddleUp(ByVal x As Integer, ByVal y As Integer)
                MouseKey(x, y, MouseEventFlags.MIDDLEUP)
            End Sub
     
            Public Overloads Shared Sub MiddleClick()
                Dim pt As Point = Cursor.Position
                Click(pt.X, pt.Y, MouseEventFlags.MIDDLEDOWN, MouseEventFlags.MIDDLEUP)
            End Sub
     
            Public Overloads Shared Sub MiddleClick(ByVal x As Integer, ByVal y As Integer)
                Click(x, y, MouseEventFlags.MIDDLEDOWN, MouseEventFlags.MIDDLEUP)
            End Sub
     
            Public Overloads Shared Sub MiddleClick(ByVal pt As Point)
                Click(pt.X, pt.Y, MouseEventFlags.MIDDLEDOWN, MouseEventFlags.MIDDLEUP)
            End Sub
     
    #End Region
     
    #Region "Wheel"
     
            Private Const WHEEL_DELTA As Int32 = 120
     
            Public Shared Sub WheelRoll(ByVal clicks As Int32)
     
                Dim minp As New MOUSEINPUT
     
                With minp
                    .dwFlags = MouseEventFlags.WHEEL : .dwExtraInfo = Nothing : .time = 0
                    .mouseData = clicks * WHEEL_DELTA
                End With
     
                Dim inp(0 To 0) As INPUT : inp(0) = New INPUT
     
                With inp(0)
                    .dwType = InputType.Mouse : .mkhi.mi = minp
                End With
     
                Dim ret As Int32 = SendInput(inp.Length, inp, Marshal.SizeOf(inp(0)))
     
            End Sub
     
    #End Region
     
            Private Shared Sub MouseKey(ByVal x As Int32, ByVal y As Int32, ByVal flags As MouseEventFlags)
     
                Dim curpos As Point = Cursor.Position
     
                Cursor.Position = New Point(x, y)
     
                Dim minp As New MOUSEINPUT
     
                With minp
                    .dx = x : .dy = y : .dwFlags = flags : .dwExtraInfo = Nothing : .time = 0
                End With
     
                Dim inp(0 To 0) As INPUT : inp(0) = New INPUT
     
                With inp(0)
                    .dwType = InputType.Mouse : .mkhi.mi = minp
                End With
     
                Dim ret As Int32 = SendInput(inp.Length, inp, Marshal.SizeOf(inp(0)))
     
                Cursor.Position = curpos
     
            End Sub
     
            Private Shared Sub Click(ByVal x As Int32, ByVal y As Int32, ByVal down As MouseEventFlags, ByVal up As MouseEventFlags)
     
                Dim curpos As Point = Cursor.Position
     
                Cursor.Position = New Point(x, y)
     
                Dim minp As New MOUSEINPUT
     
                With minp
                    .dx = x : .dy = y : .dwFlags = down : .dwExtraInfo = Nothing : .time = 0
                End With
     
                Dim inp(0 To 1) As INPUT : inp(0) = New INPUT
     
                With inp(0)
                    .dwType = InputType.Mouse : .mkhi.mi = minp
                End With
     
                inp(1) = inp(0)
                inp(1).mkhi.mi.dwFlags = up
     
                Dim ret As Int32 = SendInput(inp.Length, inp, Marshal.SizeOf(inp(0)))
     
                Cursor.Position = curpos
     
            End Sub
     
        End Class ' Mouse
     
        ''' <param name="nInputs">The number of structures in the pInputs array</param>
        ''' <param name="pInputs">An array of INPUT structures. Each structure represents an event to be inserted into the keyboard or mouse input stream.</param>
        ''' <param name="cbSize">The size, in bytes, of an INPUT structure. If cbSize is not the size of an INPUT structure, the function fails.</param>
        ''' <returns></returns>
        ''' <remarks></remarks>
        <DllImport("user32.dll", SetLastError:=True)> _
        Private Shared Function SendInput(<[In]()> ByVal nInputs As Int32, _
                                           <[In]()> ByVal pInputs() As INPUT, _
                                           <[In]()> ByVal cbSize As Int32) As Int32
        End Function
     
        Private Structure INPUT
            Dim dwType As InputType
            Dim mkhi As MOUSEKEYBDHARDWAREINPUT
        End Structure
     
        Private Structure KEYBDINPUT
            Public wVk As Int16
            Public wScan As Int16
            Public dwFlags As Int32
            Public time As Int32
            Public dwExtraInfo As IntPtr
        End Structure
     
        Private Structure HARDWAREINPUT
            Public uMsg As Int32
            Public wParamL As Int16
            Public wParamH As Int16
        End Structure
     
        <StructLayout(LayoutKind.Explicit)> _
        Private Structure MOUSEKEYBDHARDWAREINPUT
            <FieldOffset(0)> Public mi As MOUSEINPUT
            <FieldOffset(0)> Public ki As KEYBDINPUT
            <FieldOffset(0)> Public hi As HARDWAREINPUT
        End Structure
     
        Private Structure MOUSEINPUT
            Public dx As Int32
            Public dy As Int32
            Public mouseData As Int32
            Public dwFlags As Int32
            Public time As Int32
            Public dwExtraInfo As IntPtr
        End Structure
     
        Public Enum InputType As Int32
            Mouse = 0
            Keyboard = 1
            Hardware = 2
        End Enum
     
        Const INPUT_MOUSE As Int32 = 0
        Const INPUT_KEYBOARD As Int32 = 1
        Const INPUT_HARDWARE As Int32 = 2
     
        Const KEYEVENTF_EXTENDEDKEY As UInt32 = &H1
        Const KEYEVENTF_KEYUP As UInt32 = &H2
        Const KEYEVENTF_UNICODE As UInt32 = &H4
        Const KEYEVENTF_SCANCODE As UInt32 = &H8
     
        Const XBUTTON1 As UInt32 = &H1
        Const XBUTTON2 As UInt32 = &H2
     
        Const MOUSEEVENTF_MOVE As UInt32 = &H1
        Const MOUSEEVENTF_LEFTDOWN As UInt32 = &H2
        Const MOUSEEVENTF_LEFTUP As UInt32 = &H4
        Const MOUSEEVENTF_RIGHTDOWN As UInt32 = &H8
        Const MOUSEEVENTF_RIGHTUP As UInt32 = &H10
        Const MOUSEEVENTF_MIDDLEDOWN As UInt32 = &H20
        Const MOUSEEVENTF_MIDDLEUP As UInt32 = &H40
        Const MOUSEEVENTF_XDOWN As UInt32 = &H80
        Const MOUSEEVENTF_XUP As UInt32 = &H100
        Const MOUSEEVENTF_WHEEL As UInt32 = &H800
     
        Const MOUSEEVENTF_VIRTUALDESK As UInt32 = &H4000
        Const MOUSEEVENTF_ABSOLUTE As UInt32 = &H8000
     
    End Class
     
    Public Class Form1
     
        Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
            If e.KeyCode >= Keys.NumPad1 AndAlso e.KeyCode <= Keys.NumPad3 Then
                Dim clicks As Int32 = e.KeyCode - Keys.NumPad0
                If e.Alt Then clicks = -clicks
                SendInput.Mouse.WheelRoll(clicks)
            End If
        End Sub
     
        Private Sub Form1_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
            Debug.Print(e.Delta.ToString)
        End Sub
     
    End Class

  5. #5
    Membre à l'essai
    Homme Profil pro
    Aucune
    Inscrit en
    Mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune

    Informations forums :
    Inscription : Mars 2014
    Messages : 34
    Points : 11
    Points
    11
    Par défaut
    j'ai beau chercher sur internet, je ne trouve rien
    Si quelqu'un pouvais me filer un coup de pouce se serait avec joie

  6. #6
    Membre actif
    Avatar de didate
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 90
    Points : 238
    Points
    238
    Par défaut
    Le code la roulette est :

    MOUSEEVENTF_WHEEL = &H800

    Ca devrait marcher ...
    L'effort fait les forts

  7. #7
    Membre à l'essai
    Homme Profil pro
    Aucune
    Inscrit en
    Mars 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune

    Informations forums :
    Inscription : Mars 2014
    Messages : 34
    Points : 11
    Points
    11
    Par défaut
    C'est bon, merci à Didate pour son aide personnel

    Ce code permet de simuler n'importe qu'elle bouton, même la roulette de la souris.
    Pour le reste, à vous de bidouiller et faire vos expérience avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JMeter] Comment simuler le clique de bouton dans JMeter?
    Par momoG dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 12/09/2011, 12h58
  2. Simuler le clique droit de la souris
    Par Barbidure dans le forum AWT/Swing
    Réponses: 14
    Dernier message: 16/01/2009, 17h14
  3. Réponses: 4
    Dernier message: 18/12/2007, 07h38
  4. "simuler" un clique sur un bouton.
    Par Ekinoks dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 18/04/2007, 16h18
  5. Placer le pointeur de souris n'importe où
    Par regisba dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/09/2006, 14h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo