Sign in to follow this  
Followers 0
Himanshu

Difference between co-ordinate output value of MouseGetPos and AutoIt Window Info

3 posts in this topic

Hi!

I have observed that the co-ordinate values returned by the function MouseGetPos and that shown in the AutoIt Window Info tool is different.

For example, if you click at the center of Windows logo on the start-menu then the output of MouseGetPos is 526 (x-co-ordinate) and 417 (y-co-ordinate). On the other using the Window-info tool gives the values of the same as (19,752) (X,Y).

The script i am using is:

#include <Misc.au3>

Global $MouseCoor, $X_coor, $Y_coor

While 1
    Sleep (250)
    If _IsPressed("01") Then
        MsgBox(0, "Click", "The left Mouse button has been pressed")
        $MouseCoor = MouseGetPos()
        $X_coor = $MouseCoor[0]
        $Y_coor = $MouseCoor[1]
        MsgBox(0, "Click", "X-co-ordinate = " & $X_coor & @CRLF & "Y-co-ordinate = " & $Y_coor)
    EndIf
WEnd

My Questions are:

1> Is this an expected behavior or a bug?

2> If this an expected behaviour then what modifications should i bring about in my script to get the values outputted by WindowInfo Tool?

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Himanshu,

Welcome to the AutoIt forum. ;)

When you detect a click, you bring up a MsgBox. When you clear the MsgBox, where is your mouse? ;)

Answer: On the button of the MsgBox - which is about centre-screen and when you test for the mouse position it will give you the coordinates of that point . :)

Try getting the mouse position as soon as you click: o:)

#include <Misc.au3>

Global $MouseCoor, $X_coor, $Y_coor

While 1
    Sleep (250)
    If _IsPressed("01") Then
        $MouseCoor = MouseGetPos() ; Get the mouse position here <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
        MsgBox(0, "Click", "The left Mouse button has been pressed")
        ; $MouseCoor = MouseGetPos() ; And not here <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                $X_coor = $MouseCoor[0]
        $Y_coor = $MouseCoor[1]
        MsgBox(0, "Click", "X-co-ordinate = " & $X_coor & @CRLF & "Y-co-ordinate = " & $Y_coor)
    EndIf
WEnd

and you should find that you get the same coordinates as the Window Info tool. :P

M23

Edit: Added welcome.

Edited by Melba23

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

Hey Thanks a lot Melba23!! ;)

I didn't realize it was such a silly mistake......

It works fine now!! :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0