Jump to content
Sign in to follow this  

Detect Resolution and change coordinates using elseif statements

Recommended Posts

I have a script that has to work on multiple resolutions but each resolution has slightly different co-ordinates due to automatic UI scaling. I have had to make separate files for each but would like to implement them all in one script. I have a similar program written for Java which uses else if statements to use different co-ordinates for each resolution after it has been detected. I'm not good with Java so I would like to implement this on AutoIt before later making a Java version.


This is a snippet of the autoit code I have.

ToolTip("1 - Search")
MouseClick("Left", @DesktopWidth *0.823, @DesktopHeight *0.925, 1, 25)

ToolTip("2 - Buy Now")
MouseClick("Left", @DesktopWidth *0.83, @DesktopHeight *0.798, 1, 27)

ToolTip("3 - OK")
MouseClick("Left", @DesktopWidth *0.555, @DesktopHeight *0.596, 1, 15)

ToolTip("4 - OK Clear Error")
MouseClick("Left", @DesktopWidth *0.49, @DesktopHeight *0.597, 1, 30)

ToolTip("5 - Back to Search")
MouseClick("Left", @DesktopWidth *0.161, @DesktopHeight *0.108, 1, 15)


This is a snippet of a java code I used.


private static void goToSearch(double maxX, double maxY, Robot bot) throws InterruptedException {

    int currentX = 0;

    int currentY = 0;

    if (maxX == 2650 && maxY == 1440) {

        currentX = 734;

        currentY = 1316;

    } else if (maxX == 1920 && maxY == 1200) {

        currentX = 551;

        currentY = 1096;

    } else if (maxX == 1920 && maxY == 1080) {

        currentX = 551;

        currentY = 1042;

    } else if (maxX == 1680 && maxY == 1050) {

        currentX = 482;

        currentY = 959;

    } else if (maxX == 1440 && maxY == 900) {

        currentX = 413;

        currentY = 822;

    } else if (maxX == 1366 && maxY == 768) {

        currentX = 392;

        currentY = 741;

    } else if (maxX == 1280 && maxY == 800) {

        currentX = 367;

        currentY = 731;

Share this post

Link to post
Share on other sites

@ags911 can you please explain what your end goal is with the AutoIt script? There is almost certainly a much better way of accomplishing what you're after than with unreliable MouseClicks based on screen resolution (as you are finding out).

"Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball

How to get your question answered on this forum!

Share this post

Link to post
Share on other sites

Thanks for the reply. Please find the file attached. The mouse interacts with different elements onscreen of an online game via google chrome. Do you have anything in mind? The elements change and scale slightly for each resolution so I've had to compile a different script for each. The idea was that I could put everything into one simple script that detects the monitor resolution and automatically uses the script for that resolution.

PAB Forum - 1920 x 1080 - Speed (Slow).au3

Share this post

Link to post
Share on other sites

Unfortunately, you seem to have missed the forum rules during your time here. Please read them now, especially the part on game automation, and you will see why this thread is now locked.

"Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball

How to get your question answered on this forum!

Share this post

Link to post
Share on other sites
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Rskm
      Hi, recently i created a GUI for some calculations in AutoIT.  The GUI has 2 tabs and on the first tab, it has few inputboxes where i use to click with mouse and start entering the inputs. i recently made some changes in the position of these textboxes. I made this by changing the autoit code file instead of making changes in KODA. Now i cannot click inside these textboxes with mouse. However, i can use TAB key to cycle through/enter input in these input boxes. what could have made the inputboxes not responding to mouseclicks. thanks
    • By shelly
      I have to press tab to reach a selected button then double click on that
      Here's my script but its not working:
      WinActivate("Policy Decisions -- Webpage Dialog","")
      Send("{TAB}")                    // at this point its working according to my need  but double click is not working
      Mouseclick("Left",510, 320, 2, 0)

    • By cruisepandey
      Hi There ! 
      I have a script here : 
      ;Launch CMD
      $cmdHandle = WinActivate("C:\Windows\System32\cmd.exe")
      ;Sending document
      ControlSend($cmdHandle, "", "", "ftp" & @CRLF)
      ControlSend($cmdHandle, "", "", "open" & @CRLF)
      ControlSend($cmdHandle, "", "", "first command" & @CRLF)
      ControlSend($cmdHandle, "", "", "second-coomand" & @CRLF)
      first-command and second-command I can't provide cause it's internal. I have complied this .au3 file into an exe and it does the work. But I need to invoke this with Java. Java code I have tried is : 
          ProcessBuilder pb = new ProcessBuilder("C:\\Users\\username\\eclipse-workspace\\Examples\\src\\com\\own\\examples\\etc.exe");
      Through java it just launches the cmd and nothing happens after that. Please help !!
    • By newbie2019
      Cannot find example how to locate taskbar icon coordinates or position by window handle.
      I want to use PixelChecksum to check only rectangle area over specified taskbar item.
      Please help.
      What I already have found and succesfully run for whole taskbar area:
      $taskbar = WinGetHandle("[Class:Shell_TrayWnd]") $taskbarPos = WinGetPos($taskbar) $tasklistPos = ControlGetPos($taskbar, "", "[CLASS:MSTaskListWClass; INSTANCE:1]")  $iOldCheckSum = PixelChecksum($taskbarPos[0] + $tasklistPos[0], $taskbarPos[1] + $tasklistPos[1], $taskbarPos[0] + $tasklistPos[2], $taskbarPos[1] + $tasklistPos[3]);
      I know also that I can pass window handle as parameter to PixelChecksum, but don't know how to do this with taskbar icon.
      Also I was able to find something similar but seems outdated: WatchWindows

      thanks in advance
    • By lunarlattice
      Hi All,
      I am trying to login into our application using AutoIT. When I launch the application a splash screen appears and the login screen goes behind it. At this point the script pauses and I loose control of everything. I have literally tried everything for the past two days but nothing has worked yet. Any suggestions would be appreciated.
      RunWait("\\mchsv411.siplaceworld.net\splmshare\int00\conf\start_apps\windows\start_nx110.bat en portal_client int00 tc112", "", @SW_MAXIMIZE)
      AutoItSetOption("SendKeyDelay", 200)
      Local $hWnd = WinWaitActive("Teamcenter Login")
      MouseClick("left", @DesktopWidth / 2, @DesktopHeight / 2)
      The splash screen has title "Teamcenter" and is static.
      I tried to click on the center to get control of login window.
      I have tried WinActivate, WinSetState, ControlCommand and a lot of other things.
  • Create New...