saurabh2k26 Posted December 12, 2013 Share Posted December 12, 2013 Hello I made a script to open my application(app1.exe) and then perform many operations over it. It works very well. One day, while running my script, i accidentally closed my application and then, all the mouse click events in my script operated on my desktop and did random things like opening any shortcut from my desktop etc. I felt so helpless about about to do. Is there any method to force stop a running script. Note: i play my script my directly clicking on test.au3, ie i don't run using SciTE. Link to comment Share on other sites More sharing options...
jdelaney Posted December 12, 2013 Share Posted December 12, 2013 (edited) Something like this: HotKeySet("{Esc}", "ExitScript") Func ExitScript() Exit EndFunc Press escape, and the script will Exit. That's the answer to your specific question, but the real fix would be to use control* functions, so if the window is not present, it will not perform the click. Same with ControlSend, or ControlSetText vs Send. ControlClick ControlSend ControlSetText WinGetHandle Edited December 12, 2013 by jdelaney IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window. Link to comment Share on other sites More sharing options...
saurabh2k26 Posted December 12, 2013 Author Share Posted December 12, 2013 Thanks a lot One more question. Can i do Stop and then again run my script from the point where i stopped. Like in above example, Esc to stop script and then i need F1 to continue script from where is stopped. Also error handling for case where i didnt press ESC and pressed F1 on already running script, should not have any effect and F1 should be ignored. Link to comment Share on other sites More sharing options...
Moderators Solution JLogan3o13 Posted December 12, 2013 Moderators Solution Share Posted December 12, 2013 (edited) Error handling is indeed what you need. If you exit the script, it is of course not naturally going to "pick up where you left off". If you would like to be able to pick it up at a specific function, you would have to code that in. For example, if you have three functions (Private1, Private2, Private3) and want to start at Private22, you can do something like this: If $CmdLine[1] = "/Private1" Then Private1() If $CmdLine[1] = "/Private2" Then Private2() If $CmdLine[1] = "/Private3" Then Private3() Func Private1() MsgBox(0, "Private1", "Private1") EndFunc Func Private2() MsgBox(0, "Private2", "Private2") EndFunc Func Private3() MsgBox(0, "Private3", "Private3") EndFunc At the command line, you would then run <scriptname>.exe /Private2 Edited December 12, 2013 by JLogan3o13 PsiLink 1 "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum! Link to comment Share on other sites More sharing options...
jdelaney Posted December 12, 2013 Share Posted December 12, 2013 The helpfile sample for HotKeySet shows how to 'pause' a script, and resume it. IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window. 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