Clic de souris sans bouger la souris!

Résolu
Julamo Messages postés 8 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 6 mai 2008 - 5 mai 2008 à 19:49
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 6 mai 2008 à 02:10
Bonjour a tous,

Avec les fonctions "SetCursorPos" et "mouse_event" on peut facilement bouger la souris n'importe ou sur l'ecran et simuler un clic. Par contre, est-il possible de simuler l'effet d'un clic de souris a un certain endroit de l'ecran sans la bouger? En gros, je voudrais pouvoir clicker a un endroit precis de l'ecran a intervalle regulier, tout en utilisant ma souris pour d'autres taches, et je cherche donc un bout de code ki genere l'effet d'un clic de souris sans faire bouger "physiquement" la souris. J'espere ke c'est pas trop confus.

Merci pour votre aide,
Julamo

6 réponses

Utilisateur anonyme
5 mai 2008 à 22:22
Alors tu peux lui envoyer le message de click.
Il faut au préalable récupéré l'handle de la zone à cliquer (FindWindow) puis lui envoyer un wm_lbuttondown avec les coordonnées du click.

__________
  Kenji
3
Utilisateur anonyme
5 mai 2008 à 20:02
Salut,

Ben déplace la souris à l'endroit du click puis remet là à la position préalablement sauvegardée.

__________
  Kenji
0
Julamo Messages postés 8 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 6 mai 2008
5 mai 2008 à 22:00
Merci Charles mais ce n'est pas possible, j'y ai pense aussi :)

En fait, il y a en moyenne 1 clic toutes les demi-secondes, si je fais bouger la souris et revenir a sa position initiale, ca ne sert a rien car les intervalles sont trop rapides et je serai incapable d'utiliser la souris pour autre chose...

Non je dois pouvoir donner des coordonnees au programme pour k'il y simule un clic sans bouger la souris, y'a pas de solution de remplacement.
0
Julamo Messages postés 8 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 6 mai 2008
5 mai 2008 à 22:40
Merci, c'est exactement ce ke je voulais!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Julamo Messages postés 8 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 6 mai 2008
6 mai 2008 à 00:45
Merci mais je n'arrive pas a le faire fonctionner. Voici le code ke j'utilise, le but etant de generer un clic sans utiliser la souris sur un bouton d'une fenetre. Je termine la position a atteindre dans cette fenetre et ensuite utilise "Daword" et "sendMessage". Ca ne marche pas, voyez-vous kelke chose d'anormal dans mon code?  

Public Function PositionNoMouse(ByVal HwndFenetre As Long, ByVal X As Double, ByVal Y As Double) As Integer
 
  Dim rc As RECT
  Dim result As Long
  Dim PosX As Long
  Dim PosY As Long
  Dim r As Long
  Dim PosFenX, PosFenY As Integer
  Dim PosFenX1, PosFenY1 As Integer
  Dim PosFenX2, PosFenY2 As Integer
  Dim DaWord As Long
 
  ' On Recherche la position de la fenêtre par rapport à l'écran grace a son handle
  result = GetWindowRect(HwndFenetre, rc)
  PosFenX1 = rc.Left
  PosFenX2 = rc.Right
  PosFenY1 = rc.Top
  PosFenY2 = rc.Bottom
 
  PosFenX = PosFenX1 + ((PosFenX2 - PosFenX1) / X)
  PosFenY = PosFenY1 + ((PosFenY2 - PosFenY1) / Y)
 
  PosX = CLng(PosFenX)
  PosY = CLng(PosFenY)
 
  DaWord = MakeDWord(PosX, PosY)
 
  SendMessage HwndFenetre, WM_LBUTTONDOWN, 1&, DaWord
  SendMessage HwndFenetre, WM_LBUTTONUP, 1&, DaWord
 
End Function

Public Function MakeDWord(ByVal LoWord As Integer, ByVal HiWord As Integer) As Long
MakeDWord = (HiWord * &H10000) Or (LoWord And &HFFFF&)
End Function


 
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mai 2008 à 02:10
rappel:
Dim PosFenX1, PosFenY1 As Integer
PosFenX1 est un Variant

comme nous l'indique la doc:
http://msdn.microsoft.com/en-us/library/ms645607.aspx
The coordinate is relative to the upper-left corner of the client area.

ta salade a coups de GetWindowRect est donc inutile. (au pire, on aurait utilisé ClientToScreen)
0
Rejoignez-nous