prp2 Posted January 12, 2006 Share Posted January 12, 2006 Hello, I'm new to AutoIT and I'm trying to build in a check to my scripts where if they don't fully complete, rather than just pause, then exit altogether. This is probably an easy thing to do, but I'm having trouble figuring it out. Any thoughts? Thanks. Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted January 12, 2006 Moderators Share Posted January 12, 2006 Errr... how are we supposed to give ideas or help without your script? 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 More sharing options...
herewasplato Posted January 12, 2006 Share Posted January 12, 2006 Hello,I'm new to AutoIT and I'm trying to build in a check to my scripts where if they don't fully complete, rather than just pause, then exit altogether. This is probably an easy thing to do, but I'm having trouble figuring it out. Any thoughts? Thanks.Post some code that you have and forum members might be better able to advise you. I'm going to guess that "timeouts" will be part of the answer/solution. [size="1"][font="Arial"].[u].[/u][/font][/size] Link to comment Share on other sites More sharing options...
prp2 Posted January 12, 2006 Author Share Posted January 12, 2006 (edited) Ahh, sorry 'bout that. This is the script (passwords edited out)... expandcollapse popup; ---------------------------------------------------------------------------- ; ; AutoIt Version: 3.1.0 ; Author: Peter Paulding II <xxxxxx> ; ; Script Function: ; To enable FTP server in Zoom X5v router and upload GIS default config ; ; ---------------------------------------------------------------------------- ; Script Start $g_szVersion = "Zoom X5V Config" If WinExists($g_szVersion) Then Exit; It's already running AutoItWinSetTitle($g_szVersion) FileInstall ( "config.reg", "config.reg" ) ; Log into Zoom using its default admin username/password and enable the built-in FTP server Run ( 'explorer.exe "http://10.0.0.2/doc/misc.htm"' ) WinWaitActive ( "Connect to 10.0.0.2" ) Send ( "!u" ) Send ( "admin" ) Sleep ( 1000 ) Send ( "!p" ) Send ( "xxx" ) Sleep ( 1000 ) ControlClick ( "Connect to 10.0.0.2", "&Remember my password", "Button1" ) Send ( "{ENTER}" ) Sleep ( 5000 ) Send ( "^f" ) WinWaitActive ( "Find" ) Send ( "FTP" ) Send ( "{ENTER}" ) WinClose ( "Find" ) Send ( "{TAB}" ) Send ( "{DOWN}" ) Send ( "{TAB 11}" ) Send ( "{ENTER}" ) Sleep ( 3000 ) Send ( "^f" ) WinWaitActive ( "Find" ) Send ( "save" ) Send ( "{ENTER}" ) WinClose ( "Find" ) Send ( "{TAB}" ) Sleep ( 3000 ) Send ( "{ENTER}" ) Sleep ( 2000 ) Send ( "^f" ) WinWaitActive ( "Find" ) Send ( "process" ) Send ( "{ENTER}" ) WinClose ( "Find" ) Send ( "{TAB}" ) Sleep ( 3000 ) Send ( "{ENTER}" ) Sleep ( 30000 ) ; After waiting for Zoom to reboot once change has been written to flash, FTP in via command prompt and upload GIS default config Send ( "#r" ) WinWaitActive ( "Run" ) Send ( "cmd" ) Send ( "{ENTER}" ) Sleep ( 2000 ) Send ( "cd Desktop" ) Send ( "{ENTER}" ) Sleep ( 500 ) Send ( "ftp 10.0.0.2" ) Send ( "{ENTER}" ) Sleep ( 1000 ) Send ( "admin" ) Send ( "{ENTER}" ) Sleep ( 1000 ) Send ( "xxxxx" ) Send ( "{ENTER}" ) Sleep ( 1000 ) Send ( "put config.reg" ) Send ( "{ENTER}" ) Sleep ( 2000 ) Send ( "quit" ) Send ( "{ENTER}" ) Send ( "ipconfig /release" ) Send ( "{ENTER}" ) Sleep ( 500 ) Send ( "exit" ) Send ( "{ENTER}" ) ; Popup window explaining remaining steps and cleaup other window WinClose ( "http://10.0.0.2/doc/dosave.htm" ) FileDelete ( "config.reg" ) MsgBox ( 64, "Default Config Loaded", "The Zoom X5v has now been scripted with our default Galaxy configuration. All you have left to do are:" & @CRLF & @CRLF & "1. Powercycle Zoom" & @CRLF & "2. Do an ipconfig /renew on your PC (maybe if it times out when grabbing one)" & @CRLF & "3. Login to 192.168.100.1 using the default Galaxy admin password" & @CRLF & "4. Input cx username/password and VoIP info in the appropriate fields per the sheet Mike P sent out" & @CRLF & "5. Save changes, write settings to flash and reboot, you're done!" ) ; Script End It's not very elegant, but it does the job I want so far. However, on some computers it doesn't always execute properly, and as such, you sometimes end up with 2 or 3 of the same script running after one has paused. Edited January 12, 2006 by prp2 Link to comment Share on other sites More sharing options...
herewasplato Posted January 12, 2006 Share Posted January 12, 2006 You might want to hit the edit button on that last post and remove your e-mail address. (Assuming it is real, it could get harvested for spam.) [size="1"][font="Arial"].[u].[/u][/font][/size] Link to comment Share on other sites More sharing options...
seandisanti Posted January 12, 2006 Share Posted January 12, 2006 (edited) use the timeout properties in conjunction with your winwaitactives and message box. Example: Opt("WinTitleMatchMode",4); this is required because it allows you to use "active" to identify a window in the script... WinWaitActive("Whatever","",10) If WinGetTitle("active") <> "Whatever" Then Exit Edited January 12, 2006 by cameronsdad Link to comment Share on other sites More sharing options...
prp2 Posted January 12, 2006 Author Share Posted January 12, 2006 use the timeout properties in conjunction with your winwaitactives and message box. Example: Opt("WinTitleMatchMode",4); this is required because it allows you to use "active" to identify a window in the script... WinWaitActive("Whatever","",10) If WinGetTitle("active") <> "Whatever" Then Exit Ahh, thanks. I'll try that. Link to comment Share on other sites More sharing options...
herewasplato Posted January 12, 2006 Share Posted January 12, 2006 (edited) Untested, but try this...If WinWaitActive ( "Connect to 10.0.0.2", 9) = 0 Then Exit(change each of your WinWaitActive lines to something like the one above)Edit1: Should be:If WinWaitActive ( "Connect to 10.0.0.2", "window text", 9) = 0 Then Exit@cameronsdad,Care to remove his e-mail address from your quote of his edited post?Edit2: Thanks cameronsdad for deleting the quote... Edited January 13, 2006 by herewasplato [size="1"][font="Arial"].[u].[/u][/font][/size] Link to comment Share on other sites More sharing options...
prp2 Posted January 12, 2006 Author Share Posted January 12, 2006 Untested, but try this...If WinWaitActive ( "Connect to 10.0.0.2", 9) = 0 Then Exit(change each of your WinWaitActive lines to something like the one above)Tried that one, and got an error, "Illegal text at the end of statement" Also I tried cameronsdad's example and had the scipt end immediately upon the first window becoming active, even though I had a 10-second timeout in there. Link to comment Share on other sites More sharing options...
seandisanti Posted January 12, 2006 Share Posted January 12, 2006 @cameronsdad,Care to remove his e-mail address from your quote of his edited post?done, good catch. i didn't scrutinize the code very closely once i saw the issue/fix. Link to comment Share on other sites More sharing options...
seandisanti Posted January 12, 2006 Share Posted January 12, 2006 Tried that one, and got an error, "Illegal text at the end of statement" Also I tried cameronsdad's example and had the scipt end immediately upon the first window becoming active, even though I had a 10-second timeout in there.there are a few things that could cause that with mine, 1 being that the window is a child window that returns the title of the parent to WinGetTitle("active"); or 2, you're not using the full window title in your comparison...check for either by adding this line before your new IF statement: msgbox(0,"Title","Your window title is " & @lf & WinGetTitle("active")) ;or you could do this, then paste the title into your check: ClipPut(WinGetTitle("active")) Link to comment Share on other sites More sharing options...
herewasplato Posted January 13, 2006 Share Posted January 13, 2006 I failed to include the "window text" parameter:If WinWaitActive ( "Connect to 10.0.0.2", "window text", 9) = 0 Then ExitI should have been paying attention to the meeting that I was in instead of posting, but...Here is a slightly cleaner version that I have tested...If NOT WinWaitActive("Connect to 10.0.0.2", "", 3) Then MsgBox(0,"AutoIt","Timed Out")Make a test script with just that one line of code in it and run it with and without the window present.If it works for you, change the MsgBox to an Exit......or better yet send it to a UDF that cleans up after the failed script and then exits.hope that I did not waste too much of your time with that lame reply of mine.............. [size="1"][font="Arial"].[u].[/u][/font][/size] Link to comment Share on other sites More sharing options...
prp2 Posted January 14, 2006 Author Share Posted January 14, 2006 Thanks VERY much for your help, guys. It's nice to know that folks are willing to help out "newbies" so selflessly and quickly. Thanks again, this is becoming more fun the more I dig into it. 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