Curseur qui passe a travers les bords, si on va tout a droite, reaparait a gauche... pratique :)

Description

Bien l bonjour, donc, qu'est ce que je vous ai pondu ?

C'est très simple, j'en avait marre que lorsque je suis a l'autre bout de l'écran je dois faire trois fois le tour de mon tapis de souris pour ramener mon curseur tout à gauche

alors voici un ptit programme qui utilise deux API, 1 pour avoir la position de la souris, l'autre pour la déplacer
Il n'y a pas de forme (enfin si) donc pour la fermer il suffit de faire ctrl alt supr
Sur cette forme il y a un timer à 100 ms pour piquer la position du curseur, je ne connait pas d'autre moyen pour avoir en continu la position du curseur, si vous pouvez me renseigner ^^

Etant donné qu'ily a un timer à 100ms, je me dis que le programme dois planter au bout d'un certain temps, pour le moment ça ne m'est pas arrivé. Je ne connais pas trop ce que ça prend au niveau des ressources...

Ptit truc en plus, si vous aller trop loin dans la zone ou on ferme une fenetre (la zoli croix rouge) vous ne serez pas transfererà l'autre bout de l'ecran ^^ (parceque c'est pratique quand meme cette petite croix) mais il faut quand meme bien viser ... en gros vous avez une zone de 20 pixel

Sinon, jai tester pour d'autre résolution, ça marche, mais je suis sur un ecran 16/9, normalement il n'y a pas de soucis pour les autres, mais si vous pouviez tester ^^

Le code est tout petit mais ça ma pris du temps pour la recherches des API et d'un exemple de déplacement du curseur. et de comprendre le fonctionnemnt des api ^^ (c'est que mon deuxieme programme avce) . bonj'arrete de vous racconter ma vie

Ensuite, j'ai une question pour les connaisseurs : (d'abord j'explique la situation)
donc jeme sert de l'api mouse_event
et à l'endroit ou il faut placer la souris, en pixel sa ne passe pas, j'ai donc rentré une valeur, puis quand je me suis retrouvé a cette valeur, j'ai diviser par ma position en pixel, bon ça c'etait la methode D, puis en reflechissant et regardant l'exemple dont je me suis servi j'ai compris que c'etait 65535 diviser par les pixel (en X ou Y)
j'ai des valur de l'ordre de 51 et 80, mais que represente t'elle ? pourquoi 65535 ? et pourquoi mouse_event se sert de cette unité (pixelX * (65535/PixelX) ??? c'est quoi comme unité ?

Source / Exemple :


Private Sub Timer1_Timer()
Dim pos As POINTAPI
GetCursorPos pos
'Label1.Caption = pos.X
'en haut a droite
If pos.X >= pixelX - 20 And pos.Y <= 20 Then Exit Sub

'en haut
'ne reaparait pas totalment en bas car créerait un bug
If pos.Y = 0 Then Call mouse_event(MOUSEEVENTF_MOVE + MOUSEEVENTF_ABSOLUTE _
, pos.X * coefficientecranX, (pixelY - 5) * coefficientecranY, 0, 0)

'en bas
'pixelY-1 car n'atteint pas toujours le max
''ne reaparait pas totalment en haut car créerait un bug
If pos.Y >= pixelY - 1 Then Call mouse_event(MOUSEEVENTF_MOVE + MOUSEEVENTF_ABSOLUTE _
, pos.X * coefficientecranX, coefficientecranY * 3, 0, 0)

'a gauche
'ne reaparait pas totalment a droite car créerait un bug
If pos.X = 0 Then Call mouse_event(MOUSEEVENTF_MOVE + MOUSEEVENTF_ABSOLUTE _
, (pixelX - 3) * coefficientecranX, pos.Y * coefficientecranY, 0, 0)

'a droite
'pixelX-1 car n'atteint pas toujours le max
''ne reaparait pas totalment a gauche car créerait un bug
If pos.X >= pixelX - 1 Then Call mouse_event(MOUSEEVENTF_MOVE + MOUSEEVENTF_ABSOLUTE _
, 2 * coefficientecranX, pos.Y * coefficientecranY, 0, 0)

Conclusion :


Je vien d'y penser, la zone de retour au debut(ici tout l'ecran) peut etre bien sur limiter ala forme, cela peut etre utile dans certain prog...

Quand on deplace une fenetre windows, elle se retrouve d'un coup de l'autre coté ^^ moi ça m'amuse ^^

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.