Faire glisser la souris

Description

Bonjour.

Cette Source pourrait faire partie d'une Blague :
Une fois le Programme Lancé, votre Souris Glissera
au Moindre de vos Déplacements.
Pire, Arrivé au Bord de l'Ecran, la Souris Reapparaît
à l'autre Bout, et Continue de Glisser.

La Source vous donne l'Occasion de voir les Fonctions Windows
permettant de Manipuler la Souris.

Source / Exemple :


/*******************************************************************

      • Petit Programme "Chiant" Faisant "Glisser" le Mulot ***
      • Comme s'il Etait dans l'Espace...(Sans Frottement) ***
      • De plus en Sortant de l'Ecran la Souris apparait ***
      • à l'Autre Bout ***
      • /!\ /!\ ***
      • Il Faudra Fermer le Programme pour Arrêter le Cauchemard ***
                                                                                                                                        • /
// ********************************************************************************************* // Déclaration des Entêtes ********************************************************************* // ********************************************************************************************* #include <windows.h> #include <iostream.h> #include <stdio.h> // ********************************************************************************************* // Déclaration des Fonctions ******************************************************************* // ********************************************************************************************* Deplacement(POINT &PointAncien , POINT &PointRecent); // ********************************************************************************************* // Programme Principal ************************************************************************* // ********************************************************************************************* int main() { //******************************** Création des Variable Locale ******************************** // Stockage des Coordonnées à l'Instant t1,t2,t3 POINT P1,P2; // ******************************* Fin de Création des Variables Locale ************************ // Obtient la Position du Curseur à l'instant t1 GetCursorPos(&P1); // On Rends "Explicitement" la main à Windows Sleep(8); //*************************************** Boucle Infini **************************************** do { // Stockage des Coordonées de P2(t2) GetCursorPos(&P2); // Fait Glisser la Souris (Selon de Déplacement Observé entre t1 et t2) Deplacement(P1 , P2); // On Rends "Explicitement" la main à Windows Sleep(8); // Stockage des Coordonées de P1(t1) GetCursorPos(&P1); // Fait Glisser la Souris (Selon de Déplacement Observé entre t2 et t3) Deplacement(P2 , P1); Sleep(8); }while(1); //************************************** Fin Boucle Infini ************************************* return 0; } // fin de main // ************************************************** // * * // * Fonction Gérant les Déplacements de la Souris * // * --------------------------------------------- * // * * // * * // * Des Ajustements sont Effectuer pour Permettre * // * à la Souris d'Apparaître de l'Autre côté de * // * l'Ecran Lorsque l'on Dépasse du Cadre * // * * // ************************************************** Deplacement(POINT &P1 , POINT &P2) { // Stockage des Coordonnées à l'Instant t1,t2,t3 long x1=0,y1=0 ,x2=0,y2=0,x3,y3; // Stockage des Coordonnées MAX de l'Ecran POINT Ecran = {GetSystemMetrics(SM_CXSCREEN)-1, GetSystemMetrics(SM_CYSCREEN)-1}; // Stockage du Vecteur de Déplacement POINT Delta; // Calcul du Vecteur de Déplacement Delta.x = (P2.x-P1.x); Delta.y = (P2.y-P1.y); // Récupération des Données x1=P1.x; y1=P1.y; x2=P2.x; y2=P2.y; // Prévoit le Prochain Déplacement // (Sans l'Effectuer car il y aura peut être des Ajustements à faire) x3=x2+Delta.x; y3=y2+Delta.y; // Tester le Dépassement Droite-Gauche (Axe x) if ( (x3>=(Ecran.x)) || (x3<=0) ) { // Changer les Prévisions en Cas de Dépassement en Positif (Vers la Gauche) if ( x3>=(Ecran.x) ) { x3=(0+Delta.x) - (Ecran.x-x2); x2=0 - (Ecran.x-x2); } // Changer les Prévisions en Cas de Dépassement en Négatif (Vers la Droite) if ( x3<=0 ) { x3=Ecran.x+Delta.x+x2; x2=Ecran.x+x2; } } // Fin du Test (Axe x) // Tester le Dépassement Haut-Bas (Axe y) if( (y3>=Ecran.y) || (y3<=0) ) { // Changer les Prévisions en Cas de Dépassement en Positif (Vers le Haut) if ( y3>=Ecran.y ) { y3=(0+(Delta.y)) - (Ecran.y-y2); y2=0 - (Ecran.y-y2); } // Changer les Prévisions en Cas de Dépassement en Négatif (Vers le Bas) if ( y3<=0 ) { y3=Ecran.y+(Delta.y)+y2; y2=Ecran.y+y2; } } // Fin du Test (Axe y) // On Réenregistre P2 car il servira pour le Prochain Déplacement P2.x=x2; P2.y=y2; // Effectue le Déplacement (Si Besoin, des Ajustements ont été faits depuis les Prévisions) SetCursorPos(x3,y3); Sleep (8); } // Fin de Deplacement

Conclusion :


!!! ATTENTION !!!
!!! A LIRE AVANT DE LANCER LE PROGRAMME !!!

Pour Stopper le Mouvement de la Souris, il faudra Fermé le programme.
Cela ce fait en Fermant la Fenêtre DOS : "Souris_Glisse.exe" .

Comme la Souris sera (Pour les Moins Doués) Incontrôlable, vous pouvez

utiliser ALT+ENTREE pour Fermer le Programme.

Si vous avez perdu le Focus sur l'Application (En cliquant n'import où !!)
Il faudra dabord faire ALT+TAB pour retourner sur "Souris_Glisse.exe" .

PS:
Essayer de Faire un Dessin sur Paint ;-)

Codes Sources

A voir également

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.