Bonjour.
j'aimerais faire un clik a la sourie, c pour ca que j'ai fais des recherche et je suis tombé sur un truc qui s'appelle hook qui utilise la user32.dll
j'ai donc fais ce code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Enabled = True
End Sub
Dim I As Integer = 100
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
I = I - 1
Label1.Text = I / 10
If (I = 0) Then
Dim Dwflags As Long = &H2
Dim situation_sourie As Point
Form1.GetCursorPos(situation_sourie)
Dim dx As Long = situation_sourie.X
Dim dy As Long = situation_sourie.Y
Console.WriteLine(dx & " - " & dy) 'm'a servi a voir que GetCursorPos fonctionne
mouse_event(Dwflags, dx, dy, 0, 0)
End If
End Sub
<Runtime.InteropServices.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
<Runtime.InteropServices.DllImport("user32")> Public Shared Function GetCursorPos(ByRef lpPoint As Point) As Integer
End Function
infos: on appui sur le bouton1 et celui lance un timer qui compte 10sec. au bout des 10 secondes, il execute le mouse_event. Ces 10 secondes me permmete de placer au préalable ma sourie a l'endroit ou je veut que ca clique.
Alors j'ai test le GetCursorPos et ca fonctionne, par contre le mouse_event merde et fais cette erreur:
PInvokeStackImbalance a été détecté
Message: Un appel à la fonction PInvoke 'New_Project1!New_Project1.Form1::mouse_event' a déséquilibré la pile. Cela peut se produire, car la signature PInvoke managée ne correspond pas à la signature cible non managée. Vérifiez que la convention d'appel et les paramètres de la signature PInvoke correspondent à la signature non managée cible.
alors deja que j'ai eu du mal a comprendre comment on fait le code, mais la c le pompom je comprend rien a ce que le debugger veut me dire. en esperant que vous saurez mieux que moi !
L U C Y I3 E R @ D
