Bonjour,
ce bout de code permet de:
- manipuler la souris avec le clavier (8 pour aller en haut, 2 pour aller en bas, 4 pour aller à gauche, 6 pour aller a droite
- simuler un click (touche 5)
Il utilise l'api user32 de windows
Attention, votre formulaire doit etre vide car la facon car les évenements de "keypress" sont gérés par le formulaire.
Enfin, si ca ne marche pas direct, cliquez sur votre formulaire pour lui donner le focus (avec la souris par contre !!)
Enfin, n'oubliez pas de mettre "Imports System.Runtime.InteropServices" au tout début du code !
Source / Exemple :
'structure pour récupérer la pos de la souris à partir de l'api
Public Structure POINTAPI
Dim x As Int32
Dim y As Int32
End Structure
'importe de l'api la fonction pour bouger la souris
<DllImport("user32")> Shared Function SetCursorPos(ByVal x As Integer, ByVal y As Integer) As Integer
' Nothing required in here
End Function
'importe de l'api la fonction connaitre la position de la souris
<DllImport("user32")> Public Shared Function GetCursorPos(ByRef lpPoint As POINTAPI) As Integer
End Function
'importe de l'api la fonction simuler un click
<DllImport("user32")> Public Shared Sub mouse_event(ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
End Sub
'si touche pressée
Private Sub Form_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
'recup la position de la souris
Dim CursorPos As POINTAPI
Me.GetCursorPos(CursorPos)
Debug.WriteLine("Position souris: " & CursorPos.x & " - " & CursorPos.y)
'en fonction de la touche appuyée
Select Case Asc(e.KeyChar)
Case 50 'bas
Me.SetCursorPos(CursorPos.x, CursorPos.y + 10)
Case 52 'gauche
Me.SetCursorPos(CursorPos.x - 10, CursorPos.y)
Case 54 'droite
Me.SetCursorPos(CursorPos.x + 10, CursorPos.y)
Case 56 'haut
Me.SetCursorPos(CursorPos.x, CursorPos.y - 10)
Case 53 'milieu (click)
Me.mouse_event(&H2, 0&, 0&, 0, 0)
Me.mouse_event(&H4, 0&, 0&, 0, 0)
End Select
End Sub
'evenement déclenché quand on clique sur le formulaire
Private Sub Form_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click
MsgBox("ta cliqué !!!")
End Sub
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.