geekforu Posted August 2, 2010 Share Posted August 2, 2010 hi, I am new to Autoit and was wondering how to pass the button instance parameter as a variable in ControlClick. I need to read the button instance from a file (e.g. 5), store it in a variable and then need controlclick to click on that button instance. I tried concatenation something like this : $firstnum = "[CLASS:Button; INSTANCE:" & $instanceVariable & "]" ControlClick($hWnd3, "", $firstnum) It does not work and throws error in the first line saying illegal format. Please help me regarding this. Thanks in advance Link to comment Share on other sites More sharing options...
bo8ster Posted August 2, 2010 Share Posted August 2, 2010 Good attempt, look up ControlGetHandle() in the help file. Post your code because code says more then your words can. SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y. Use Opt("MustDeclareVars", 1)[topic="84960"]Brett F's Learning To Script with AutoIt V3[/topic][topic="21048"]Valuater's AutoIt 1-2-3, Class... is now in Session[/topic]Contribution: [topic="87994"]Get SVN Rev Number[/topic], [topic="93527"]Control Handle under mouse[/topic], [topic="91966"]A Presentation using AutoIt[/topic], [topic="112756"]Log ConsoleWrite output in Scite[/topic] Link to comment Share on other sites More sharing options...
Malkey Posted August 2, 2010 Share Posted August 2, 2010 (edited) This example appears to work. Run("calc.exe") WinWaitActive("Calculator") Local $hWnd3 = WinGetHandle("Calculator") Local $instanceVariable = 42 ; Button42 is button 7 on calculator. Local $firstnum = "[CLASSNN:Button" & $instanceVariable & "]" ControlClick($hWnd3, "", $firstnum) ; or $firstnum = "[Class:Button; Instance:" & $instanceVariable & "]" ControlClick($hWnd3, "", $firstnum) ; or $firstnum = "Button" & $instanceVariable ControlClick($hWnd3, "", $firstnum) Edit: Added the last example of using the ClassnameNN property of the control as the controlID parameter in the ControlClick() function. Edited August 2, 2010 by Malkey Link to comment Share on other sites More sharing options...
omikron48 Posted August 2, 2010 Share Posted August 2, 2010 I'd suggest outputting the concatenated string via a MsgBox to see what is actually passed as a parameter to ControlClick. Since you mentioned reading some data from a file and storing that into a variable, I'm guessing that the error may lie with the data you read and/or the way you handled that data. Link to comment Share on other sites More sharing options...
bo8ster Posted August 2, 2010 Share Posted August 2, 2010 (edited) I would do something like this Global Const $appHandle = WinGetHandle("[ACTIVE]") Local $bHandle = ControlGetHandle($appHandle, "", "[Class:Button; Instance:" & $instanceVariable & "]") If $bHandle == "" Then MsgBox(0, "Handle Error", "button handle not obtained") EndIf ControlClick($bHandle, "", "") Safer code. Edited August 2, 2010 by bo8ster Post your code because code says more then your words can. SciTe Debug mode - it's magic: #AutoIt3Wrapper_run_debug_mode=Y. Use Opt("MustDeclareVars", 1)[topic="84960"]Brett F's Learning To Script with AutoIt V3[/topic][topic="21048"]Valuater's AutoIt 1-2-3, Class... is now in Session[/topic]Contribution: [topic="87994"]Get SVN Rev Number[/topic], [topic="93527"]Control Handle under mouse[/topic], [topic="91966"]A Presentation using AutoIt[/topic], [topic="112756"]Log ConsoleWrite output in Scite[/topic] Link to comment Share on other sites More sharing options...
geekforu Posted August 2, 2010 Author Share Posted August 2, 2010 Thank you all !! it worked...just love this forum Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now