MouseGetPos Décalé

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Flashneo
Niveau 1
Niveau 1
Messages : 10
Enregistré le : mer. 27 avr. 2016 16:22
Status : Hors ligne

MouseGetPos Décalé

#1

Message par Flashneo »

Bonjour,

Voilà j'aimerais faire un petit utilitaire qui m'indiquerais la position X et Y de mon curseur ainsi que la couleur du pixel survolé.
J'ai donc commencé et j'ai écris ceci :
#include <MsgBoxConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>


#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 463, 223, 443, 129)
$Console = GUICtrlCreateEdit("", 8, 16, 209, 193, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN), $WS_EX_STATICEDGE)
GUICtrlSetData(-1, "Console")
$PosX = GUICtrlCreateLabel("Coordonné en X :", 224, 16, 87, 17)
$PosY = GUICtrlCreateLabel("Coordonné en Y :", 224, 48, 87, 17)
$ColorPixel = GUICtrlCreateLabel("Couleur du pixel :", 224, 80, 85, 17)
$InX = GUICtrlCreateInput("0", 320, 16, 105, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_READONLY,$ES_NUMBER), $WS_EX_STATICEDGE)
$InY = GUICtrlCreateInput("0", 320, 48, 105, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_READONLY,$ES_NUMBER), $WS_EX_STATICEDGE)
$InColorPixel = GUICtrlCreateInput("ffff", 320, 80, 105, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER,$ES_READONLY), $WS_EX_STATICEDGE)
$ColorBox = GUICtrlCreateEdit("", 224, 112, 113, 97, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN), $WS_EX_STATICEDGE)
GUICtrlSetData(-1, "")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit

   EndSwitch

   Local $aPos = MouseGetPos()
   Local $iColor = PixelGetColor($aPos[0], $aPos[1])
   GUICtrlSetData($InX, $aPos[0])
   GUICtrlSetData($InY, $aPos[1])
   GUICtrlSetData($InColorPixel, Hex($icolor, 6))
   GUICtrlSetBkColor($ColorBox, $icolor)
WEnd
Mais le problème c'est que mon écran a une résolution de 1920x1080 et que quand je vais tout en bas à droite de mon écran les coordonnés affiché sont 1535 et 863... En plus de cela la couleur du pixel n'est jamais bonne et est toujours décalé.
Je viens donc vers vous pour savoir si chez vous c'est pareil, et si vous savez pourquoi ?

Merci d'avance
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: MouseGetPos Décalé  

#2

Message par orax »

Je pense que c'est lié à la taille des éléments dans Panneau de configuration\Tous les Panneaux de configuration\Affichage. La valeur par défaut est "Plus petite" (sur Windows 8.1).
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
Flashneo
Niveau 1
Niveau 1
Messages : 10
Enregistré le : mer. 27 avr. 2016 16:22
Status : Hors ligne

Re: MouseGetPos Décalé

#3

Message par Flashneo »

Merci, effectivement c'était bien ça, mon pc était sur 125% au lieu de 100%. Du coup ça me fait bizarre de tout voir en plus petit ^^
Encore merci je pense pas que j'aurais eu l'idée d'aller chercher l'erreur ici...
Je passe donc le sujet en résolu ;)
Répondre