Sign in to follow this  
Followers 0
CrazyConfused

Verify Button or text field existance

3 posts in this topic

Hi all,

Hate to have to start a new topic for this but I have been unable to find an existing thread that address's my issue.

I have written some code that uses ControlGetText to check if the text field has the proper value in it and if not I use ControlSend to insert the proper value. I found that if I change the ControlID to something that does not exist the script continues as if nothing has happened. I would like to be able to verify if a field exists. I would also like to be able to verify if a button exists.

I thought maybe I could use the return value in ControlClick to figure out if I was successful or not but so far the only value I get back is 0 for failure. This happens both when I have the correct ControlID (and the click works) and when I enter an incorrect ControlID.

WinWaitActive("Reports")

MsgBox(4096,"",@error)
SetError(2)
MsgBox(4096,"",@error)

ControlClick("Reports", "", "[CLASS:ThunderRT6PictureBoxDC; INSTANCE:3]") ;Run Reports Button
MsgBox(4096,"",@error)

I am using MsgBox in an attempt to track what is going on. When I first run this code @error equals 0 and then it changes to 2 (I intentionally set it to something different from 0 or 1 to make sure things are working properly). When I have the correct ControlID in the code the next message box displays 0 BUT I see the screen change as it is supposed to when this button is clicked. When I have the wrong ControlID in the code the next message box displays 0 (and nothing happens).

I kind of figure I am making some stupid mistake in how I use @error but after trolling forums and help file I haven't been able to figure out what my problem is.

Whats my problem? Is there a better way to verify a button or field's existence than by using the return value?

Share this post


Link to post
Share on other sites



Try it this way:

$hButton = ControlGetHandle("Reports", "", "[CLASS:ThunderRT6PictureBoxDC; INSTANCE:3]")
If $hButton Then
     ControlClick("Reports", "", $hButton) ;Run Reports Button
Else
     MsgBox(16, "Error", "Button not found.")
EndIf

:x


Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

Share this post


Link to post
Share on other sites

Thanks PsaltyDS!

I had tried working with ControlGetHandle for a bit but I was trying to use the @error (still confused about the whole return value @error thing but meh) return value as described in AutoIt Help.

That code works great and I have been able to use it for both buttons and text fields. Thanks again.

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