Sign in to follow this  
Followers 0
jonai

How to stop script without exit the program

3 posts in this topic

#1 ·  Posted (edited)

Hello,
I am very new in AutoIt, and my programming skills are few. I'm doing a macro to repeat certain keystrokes, and so far I have succeeded. But I need to stop the script when the check fails to continue and I do not know how.

I have to check in a strange way because all text in the window is hidden and the screen change certain texts and that's what I check.

What I need is that instead of "exit" the program stops and start again from the button.

Here is the code I have done so far.

A greeting

#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.14.2
 Author:         myName

 Script Function:
    Template AutoIt script.

#ce ----------------------------------------------------------------------------

; Script Start - Add your code below here
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>

$Dateactual = @MDAY & '_' & @MON & '_' & @YEAR
$Dateactual2 = @MDAY & @MON & @YEAR
$ruta ="C:\Users\11oe0053\Desktop\koda\"
$folder= $ruta & $Dateactual



If Not FileExists ($folder) Then
DirCreate ($folder)
EndIf


#Region ### START Koda GUI section ### Form=c:\koda\conformator10.kxf
$Form1_1 = GUICreate("Form1", 429, 361, 299, 151)
$CONFORMATOR = GUICtrlCreateLabel("CONFORMATOR V 1.0", 16, 24, 350, 45)
GUICtrlSetFont(-1, 22, 800, 0, "Arial Black")
GUICtrlSetColor(-1, 0x000000)
$Checkbox1 = GUICtrlCreateCheckbox("NIE", 16, 88, 57, 25)
$Input1 = GUICtrlCreateInput("DNI/NIE", 88, 88, 137, 21)
$Label1 = GUICtrlCreateLabel("SOLICITANTE", 16, 72, 74, 17)
$Label2 = GUICtrlCreateLabel("CÓNYUGE/PAREJA", 16, 120, 103, 17)
$Checkbox2 = GUICtrlCreateCheckbox("NIE", 16, 140, 57, 25)
$Input2 = GUICtrlCreateInput("DNI/NIE", 88, 144, 137, 21)
$Checkboxpar = GUICtrlCreateCheckbox("C", 240, 140, 25, 25)
$Label3 = GUICtrlCreateLabel("HIJO 01", 16, 176, 43, 17)
$Checkbox3 = GUICtrlCreateCheckbox("NIE", 16, 192, 49, 33)
$Input3 = GUICtrlCreateInput("DNI/NIE", 88, 200, 137, 21)
$Label4 = GUICtrlCreateLabel("HIJO 02", 16, 232, 43, 17)
$Checkbox4 = GUICtrlCreateCheckbox("NIE", 16, 248, 57, 33)
$Input4 = GUICtrlCreateInput("DNI/NIE", 88, 256, 137, 21)
$Label5 = GUICtrlCreateLabel("HIJO 03", 16, 288, 43, 17)
$Checkbox5 = GUICtrlCreateCheckbox("NIE", 16, 304, 49, 25)
$Input5 = GUICtrlCreateInput("DNI/NIE", 88, 304, 137, 21)
$Button1 = GUICtrlCreateButton("DATOS SI", 272, 88, 129, 33)
$Button2 = GUICtrlCreateButton("DATOS VL", 272, 128, 129, 33)
$Button3 = GUICtrlCreateButton("DATOS GE", 272, 168, 129, 33)
$Button4 = GUICtrlCreateButton("DATOS CI", 272, 208, 129, 33)
$Button5 = GUICtrlCreateButton("GENERAR INFORME", 272, 274, 129, 33)
$Button6 = GUICtrlCreateButton("REINICIAR", 272, 312, 129, 33)




GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###


HotKeySet("{ESC}", "_Terminate")

         WinSetState ( "CAROL", "", @SW_MAXIMIZE )
         WinActivate ( "CAROL" )

While 1
   Switch GUIGetMsg()
      Case $Button1
         $data1 = GUICtrlRead($Input1)
         $data2 = GUICtrlRead($Input2)
         $data3 = GUICtrlRead($Input3)
         $data4 = GUICtrlRead($Input4)
         $data5 = GUICtrlRead($Input5)


         If $data1 = "DNI/NIE" Then
            MsgBox($MB_OK, "ERROR", "No has introducido ningún dato")

         EndIf

         $folder2= $ruta & $Dateactual & "\" & $data1
         If Not FileExists ($folder2) Then
            DirCreate ($folder2)
         EndIf

Local $i = 0
Local $times = 0

Do
         Send ("{ALT}+{e}")
         Send ("{s}")
         Send ("{ALT}+{e}")
         Send ("{ENTER}")
         $comparativo = ClipGet()



   If StringRegExp($comparativo, "CHECKTEXT2") Then
      Send ( $data1 )
      Send ("{ENTER}")
      $i = 1
   Else
      Sleep(100)
      $times = $times + 1
   EndIf

   Until $i = 1  Or $times = 10; Increase the value of $i until it equals the value of 10.


If $times = 10 Then
   MsgBox(0, "INFO", "No estás en la pantalla de Salida DSCP21 o el Sistema está muy lento")
   Exit ; CHANGE THIS FOR STOP THE SCRIPT I'DON'T KNOW HOW

   EndIf
; I REPEAT THE SAME IN ANOTHER SCREEN OF THE SAME WINDOW
Local $i = 0
Local $times = 0

Do
         Send ("{ALT}+{e}")
         Send ("{s}")
         Send ("{ALT}+{e}")
         Send ("{ENTER}")
         $comparativo = ClipGet()



   If StringRegExp($comparativo, "CHECKTEXT2") Then
      Send ( $data1 )
      Send ("{ENTER}")
      $i = 1
   Else
      Sleep(100)
      $times = $times + 1
   EndIf

   Until $i = 1  Or $times = 10; Increase the value of $i until it equals the value of 10.


If $times = 10 Then
   MsgBox(0, "INFO", "No estás en la pantalla de Salida DSCP21 o el Sistema está muy lento")
   Exit ; CHANGE THIS FOR STOP THE SCRIPT I'DON'T KNOW HOW

   EndIf



      Case $Button2
         GUISetState(@SW_MINIMIZE)



      Case $Button6
         GUICtrlSetData($Input1, "DNI/NIE")
         GUICtrlSetData($Input2, "DNI/NIE")
         GUICtrlSetData($Input3, "DNI/NIE")
         GUICtrlSetData($Input4, "DNI/NIE")
         GUICtrlSetData($Input5, "DNI/NIE")

      Case $GUI_EVENT_CLOSE
         ExitLoop
   EndSwitch
WEnd

 

Edited by jonai

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Exit  =>  Continueloop   :)

Edited by mikell

Share this post


Link to post
Share on other sites

thanks it's works great

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