Probleme avec l'api mouse_event Lib "user32" [Résolu]

Messages postés
20
Date d'inscription
dimanche 4 janvier 2004
Dernière intervention
28 juin 2011
- 7 nov. 2009 à 19:40 - Dernière réponse :
Messages postés
20
Date d'inscription
dimanche 4 janvier 2004
Dernière intervention
28 juin 2011
- 7 nov. 2009 à 19:58
Bonjour
Voilas je voudrais simulé le click gauche de ma souris.

J'ai récupérer le code avec une fonction api, mais j'ai un petit soucis.

Pour appeler le click, je fait apel a une fonction click ou il faut préciser la position ou l'on veut le click X et Y.

Alors cela marche pour X, mais Il me met la souris toujours a Y= 0

Je vous met le code

**************************************************************************************
Public Class Form1
Public Declare Function SetCursorPos Lib "user32" _
( _
ByVal X As Long, _
ByVal Y As Long _
) As Long

Declare Sub mouse_event Lib "user32" _
( _
ByVal dwFlags As Long, _
ByVal dx As Long, _
ByVal dy As Long, _
ByVal cButtons As Long, _
ByVal dwExtraInfo As Long _
)

Public Const MOUSEEVENTF_LEFTDOWN = &H2
Public Const MOUSEEVENTF_LEFTUP = &H4

' x et y sont les valeurs en pixels sur ton screen
' par ex, pour une définition en 800/600, si tu veux cliquer au centre
' x 400 et y 300
Sub clic(ByVal x As Integer, ByVal y As Integer)
' On place le curseur
SetCursorPos(x, y)
' On simule le clic
mouse_event(MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, x, y, 0, 0)

End Sub

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

Windows.Forms.Cursor.Position = New Point(610, 536)
Windows.Forms.Cursor.Position = New Point(Windows.Forms.Cursor.Position.X - 225, Windows.Forms.Cursor.Position.Y + 274)


clic(385, 200)

Label1.Text = MousePosition.X
Label2.Text = MousePosition.Y

End Sub
End Class
***********************************************************************

Donc la Il devrais normalement cliker gauche au coordonné X=380 et Y =200

Mais il fait le click a x=385 et y=0

Merci de m'aider
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Dernière intervention
5 avril 2013
- 7 nov. 2009 à 19:54
3
Merci
Bonjour,

Déjà, sous VB.Net que je ne connais pas, mais....
Les Long de VB6 sont des Integer sous vb.net.

Merci jmf0 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de jmf0
Messages postés
20
Date d'inscription
dimanche 4 janvier 2004
Dernière intervention
28 juin 2011
- 7 nov. 2009 à 19:58
0
Merci
Tu avait raison, j'ai changé les Long par des Integer et ça marche

Merci ^^
Commenter la réponse de davidmaillard

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.