Jump to content

Hoe to skip an autoit script and continue execution of other autoit script?


Go to solution Solved by czardas,

Recommended Posts

Posted

I am trying to execute 10 different autoit scripts converted to ".exe" at a same time. Can any one tell me if there is a way to to stop execution of one script and continue the execution of other ".exe" files. 

eg: I have TC1 - TC10

if there is a problem in TC4 while it is executing, i want to stop the execution of TC4 and continue with the execution from TC5 till TC10. 

Posted

Welcome to the forum.

What you mean TC1 - TC10 ?

What exactly do you want to achieve, what program you want to automate?
It is possible that the solution to your problem is easier to perform in a different way.

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted

HI ,

1. TC1 - TC10 means I have 10 test scripts, which i have converted to .exe format and am trying to run all test case at once. while the autoIT is executing say test script 4, there is an error in between, i want to skip the execution of rest of the test script and continue with the execution of test script 5.

2. I am trying to automate say 10 different autoit scripts one after the other, for which my framework takes care of the execution. 

I tried Exit(), but this will complete stop autoIT, which i do not want. I want to stop execution of failed test script but continue with the execution of other tests

Posted

In dependence of how do you know if some test is failed, you can make mother-test - TC0, with would be carry out execution of TC1...TC10...TC99. If something go wrong you can always stop TCx with

ProcessClose ( "process" )
_WinAPI_TerminateProcess ( $hProcess [, $iExitCode = 0] )

Or you can make stop hotkey(s) for TC1...TC10

  • Solution
Posted
  On 11/11/2013 at 9:50 AM, AmitKumar said:

Did not work and not what i was looking for. 

 

Which approach? Methods have been tested and I don't see a great deal of difference.

Rewrite scripts so they send a message to a master script and exit on failure. Then recompile. Look at ProcessExists() and other related functions (shown in the help file). Also see ShellExecute().

Posted
This worked for me.... thanks a lot guys. 
 
Process_Kill(Run("process1"))
 
Run("process2")
 
Func Process_Kill($sProc)
    Local $ProcHandle, $StrPoint
    Local $ProcessPid = ProcessExists($sProc)
MsgBox(0,"pid",$ProcessPid)
    If $ProcessPid = 0 Then
        MsgBox(16, "Error", "Process " & $sProc & " not exist")
        Return SetError(1)
    EndIf
 
    $ProcHandle = DllCall("kernel32.dll", "hwnd", "OpenProcess", "dword", BitOR(0x0400, 0x0004), "int", 0, "dword", $ProcessPid)
 
    If $ProcHandle[0] = 0 Then
        MsgBox(16, "Error", "Process " & $sProc & " not exist")
        Return SetError(1)
    EndIf
ProcessClose($ProcessPid)
EndFunc
Posted

Hi Amit,

I want to understand and implement this type of error handling in my framework.

I have few doubts.

1) What is "process1" and "process2" in the below code?

Process_Kill(Run("process1"))
Run("process2")

2) From your post you are trying to skip the execution of rest of the current script if any error is found and continue with the execution of next script.

    When an error is found how are you skipping the execution of the script and continue with the next one?

 


 

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
  • Recently Browsing   0 members

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