Simuler la souris

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 042 fois - Téléchargée 31 fois

Contenu du snippet

on montre comment: faire un click, detecter la position de la souris, bouger la souris et la rendre invisible/visible...

Source / Exemple :


#include <windows.h>

int STDCALL
WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow)
{
  POINT pos; //espace pour loger les coordonnées
  GetCursorPos(&pos); //loge les coordonnées (x,y) de la position initiale de la souris
  
  ShowCursor(TRUE); //rendre la souris visible (je sait que ca sert a rien parce qu'elle l'est déja mais c'est a titre démonstratif) remplacer TRUE par FALSE pour la rendre invisible 

  #define X 200   //on peut metre une autre valeur pour agrandir ou diminuer le x mais la valeur doit etre plus grande ou egale a 100
  
  //diagonale  haut/gauche : bas/droite
  for (int i=0; i<X; i+=X/100)
      {
      SetCursorPos(pos.x-X/2+i, pos.y-X/2+i);  //place la souris a: position_initiale.(x_ou_y) - grandeur_du_X /2 + la_ou_on_est_randu_dans_la_boucle  en x ET en y ce qui fait une diagonale
      Sleep(5);
      }
  
  //diagonale  bas/gauche : haut/droite
  for (int i=X; i>0; i-=X/100)
      {
      SetCursorPos(pos.x+X/2-i, pos.y-X/2+i);  //place la souris a: position_initiale.(x_ou_y) - grandeur_du_X /2 + la_ou_on_est_randu_dans_la_boucle  en x ET en y ce qui fait une diagonale
      Sleep(5);
      }

  
  //demander si on veut recommencer
  if (MessageBox (NULL, "voulez vous recommencer?" , "SouriX", 0 + MB_YESNO + MB_ICONQUESTION)==IDYES)
     { //si oui:
     SetCursorPos(pos.x, pos.y); //remetre la souris a la position initialle

     //simuler un double click gauche (remplacer: MOUSEEVENTF_LEFTDOWN par MOUSEEVENTF_RIGHTDOWN ou MOUSEEVENTF_RIGHTUP pour le boutton droit)
     mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); //boutton gauche appuyer
     mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); //boutton gauche relacher

     Sleep(3); //les ordinateurs lents pouraint ne pas comprendre le 2eme click sinon

     mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); //boutton gauche appuyer
     mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); //boutton gauche relacher

     //normalement on a parti le programme en cliquant/double_cliquant dessus donc la position_initiale est sur le fichier et le programme redouble clique dessus :)
     } //bon je sais un goto ou une boucle aurait suffi mais c'est pour vous montrer d'autres commande ;)

  return 0;
}

Conclusion :


vous allez me dire que faire des X avec une souris ca sert pas a grand choses... bein vous avez raison :) ... mais le but c'etait de montrer a faire un max de choses avec la souris...

ps: jai fait cette source sur demande...

A voir également

Ajouter un commentaire

Commentaires

Bartagus
Messages postés
1
Date d'inscription
lundi 24 novembre 2008
Statut
Membre
Dernière intervention
12 janvier 2011

Bonjour, je ne connais rien en programmation. J'accompagne des personnes en situation de handicap. Je cherche à permettre aux personnes de faire sur un seul bouton le clic gaughe et le droit.
Exactement à la manière de "One finger snap" sur mac.
http://www.old-jewel.com/onefingersnap/index.html

Il différencie le clic court du clic long. Un clic court équivaut au clic gauche. Un clic supérieur à 1,5 sec équivaut au clic droit.

Est-ce possible sous windows ? Pouvez-vous m'y aider ?

Merci d'avance
jaouaditm
Messages postés
5
Date d'inscription
lundi 8 janvier 2007
Statut
Membre
Dernière intervention
30 août 2013

merci
pour faire un click souris
GetKeyState(VK_LBUTTON)& Mask
snpier wolf
Messages postés
219
Date d'inscription
samedi 11 août 2007
Statut
Membre
Dernière intervention
30 mai 2011

bonjour,
braveau pour ce code il est trop :)
mais dis moi la fonction ShowCursor(FALSE);
fonctionne que pour le messageBox de fin, tu saurai pas comman fair pour rendre la souris invisible pour toutes les fenêtres?
Arsaw
Messages postés
2
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
10 février 2008

en bidouillant un peu :

remplacer "#include "iostream.h""
par"#include

using namespace std;"

je n'ai plus cette erreur, mais j'en ai une encore pire que je ne vois pas comment résoudre :( ?

1>AutoMouse.obj : error LNK2019: symbole externe non résolu __imp__GetAsyncKeyState@4 référencé dans la fonction _main
1>Souris.obj : error LNK2019: symbole externe non résolu __imp__GetCursorPos@4 référencé dans la fonction "public: int __thiscall Souris::x(void)" (?x@Souris@@QAEHXZ)
1>Souris.obj : error LNK2019: symbole externe non résolu __imp__SetCursorPos@8 référencé dans la fonction "public: bool __thiscall Souris::move(int,int)" (?move@Souris@@QAE_NHH@Z)
1>Souris.obj : error LNK2019: symbole externe non résolu __imp__mouse_event@20 référencé dans la fonction "public: bool __thiscall Souris::leftClick(int)" (?leftClick@Souris@@QAE_NH@Z)

si vous pouviez m'aider je vous en serai tres reconnaissant.
Arsaw
Messages postés
2
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
10 février 2008

Bonjour, je débute en c++ et je suis super intéressé par ce petit programme alors j'essaye de comprendre son fonctionnement. Mais avant tout je souhaiterai le compiler. Et la, gros probleme...

1>.\AutoMouse.cpp(5) : fatal error C1083: Impossible d'ouvrir le fichier include : 'iostream.h' : No such file or directory

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.