Jump to content

ToolTips Intercept and Break ControlClick()


Recommended Posts

Hi, All,

I discovered a very strange bug in AutoIT last week that I wanted to bring to the developers' attention. The appearance of a ToolTip (the yellow box that appears when the mouse is hovered above a control) can break AutoIT. Specifically, AU3_ControlClick() will return that the click was successful when, in fact, the click dismissed the ToolTip and did not click the control.

Some details about this problem:

1) I verified this problem ultimately by inserting a call to AU3_MouseMove() before my script executed to be certain that the ToolTip didn't appear.

2) I've run this script on dozens of different configurations and only on one did it break: it was the one whose performance happened to make the tool tip fade in as the click was sent. Changing the timing at all (so the click was sent before the ToolTip faded in or after it had completed appearing) seemed to avoid the bug.

3) I saw this behavior when automating Adobe Photoshop CS2 on a system that is not available to the public.

4) When the control was supposed to receive the click (this is NOT the same control as the mouse was hovering over) instead the ToolTip was dismissed. The control was not clicked but AU3_ControlClick() returned that there was no failure.

5) I was calling AU3_ControlClick ("window title", "", "button7", "left", 1) (no window text was supplied and this code has worked on dozens of other systems many hundreds of times).

Given that it is unlikely that we'll ever be able to reproduce this problem on a developer's system, I was wondering if anyone could comment as to why the ToolTip would intercept the click that was supposed to be going to a different control. Any thoughts?

Scott

Link to comment
Share on other sites

  • 2 weeks later...

A couple of weeks have gone by and I'm guessing that there are no ideas on this. It is unfortunately because I have recently seen another case of AU3_ControlClick() returning success and the button not having been clicked.

Can anyone offer a suggestion as to how I could investigate this myself? Maybe some code that shows how AU3_ControlClick() is implemented? I'm willing to spend some time on the relevant WINAPI function calls, if need be.

Scott

Link to comment
Share on other sites

  • Moderators

Why not trap the mouse in an area away from the screen. If you trap the mouse away from the application you are trying to automate, since you are using ControlClicks anyway, that could/would solve your problem?

Also a note... ToolTips are windows too, have you tried to get all the active windows when this tooltip is up, and maybe get some information from it to see why it's affecting your situation specifically?

Using ControlClick() ... How are you using the 'Title', 'Text', 'ControlID'? Are you using something like $Title = WinGetTitle(''), which get's the active windows title? (Yes I understand your using the DLL, but you have to get the title some how).

Hope the questions and statements were clear... hope they help as well.

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...