Jump to content

ControlClick an AutoIT Window GUI

Recommended Posts

Okay, so I am tring to click inside another program I created using AutoIT, it seems the Focus is already on the window except that it does not click :-?

$sControl = ControlGetFocus("TitleTest1")
    ControlClick("", "", $sControl, "left", 1, $coord[0], $coord[1])
    MsgBox(0, "ControlGetFocus Example", "The control that has focus is: " & $sControl)

Any suggestions? I tried this on the AutoIT Info Window and it does not work :-(

Link to post
Share on other sites

Because it doesn't know what window to look for probably.

Okay, so I changed it to this:

$handle = WinActivate("TitleTest1")
Local $var = PixelGetColor(122, 131, $handle)
MsgBox(0, "The decimal color is", $var)
MsgBox(0, "The hex color is", Hex($var, 6))
ControlClick("", "", $handle, "left", 1, $coord[0], $coord[1])

It finds the pixel but no click from ControlClick.

Link to post
Share on other sites

Okay so I have found the issue I had another embed window inside the parent GUI, but now the x, y are wrong.. I don't know what is happening. This is my updated code:

$handle = WinActivate("TitleTest1", "Window2")
Local $var = PixelGetColor(3, 3, $handle)
MsgBox(0, "The decimal color is", $var)
MsgBox(0, "The hex color is", Hex($var, 6))
Local $coord = PixelSearch(176, 46, 229, 99, $var, 0, 1, $handle)
;ControlClick("TitleTest1", "", "Window2", "left", 1, $coord[0], $coord[1])

It clicks, but at wrong coordinates... is it something I am missing?

Edited by benydc
Link to post
Share on other sites

The coordinates used in a controlclick function are the coordinates inside the control it's clicking on, not the coordinates of the window you want it to click at. You're looking for a pixel color, but where it finds it may not be anywhere near the control you want to click. Just use the window title and the controlid/handle of the button you want to click and forget about the coordinates for now, at least until you can get it to click it reliably.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Link to post
Share on other sites

Oh Finaly! Got it working!! Yes you are right.. I didnt had to put the second window all I had to do is set the PixelCoordMode to 2 because I had a second window inside my GUI and remade the coordinates using AutoIT Window Info to Client and now works Great ! Thanks a lot guys! Put this on Knowledge Database so people can find it. :oops::bye:

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
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...