Jump to content

WinGetText("[ACTIVE]") function


Recommended Posts

No.. no.. no way.. check and post your last code here

Spoiler

My Contributions

Glance GUI Library - A gui library based on Windows api functions. Written in Nim programming language.

UDF Link Viewer   --- A tool to visit the links of some most important UDFs 

 Includer_2  ----- A tool to type the #include statement automatically 

 Digits To Date  ----- date from 3 integer values

PrintList ----- prints arrays into console for testing.

 Alert  ------ An alternative for MsgBox 

 MousePosition ------- A simple tooltip display of mouse position

GRM Helper -------- A littile tool to help writing code with GUIRegisterMsg function

Access_UDF  -------- An UDF for working with access database files. (.*accdb only)

 

Link to comment
Share on other sites

If I run this script

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

 AutoIt Version: 3.3.14.2
 Author:         myName

 Script Function:
    Template AutoIt script.

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

; Script Start - Add your code below here
#RequireAdmin
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
$sUserName = @UserName
Local $aArray[1]
$aArray[0] = "Brush.exe"
For $vElement In $aArray
Run($vElement)
WinWait("Seleziona la lingua dell'installazione")
WinActivate("Seleziona la lingua dell'installazione")
ControlClick("Seleziona la lingua dell'installazione", "", "Button1")
WinWait("Installazione di CyberLink", "InstallShield Wizard per CyberLink", 10)
Local $sTitle = WinGetTitle("[ACTIVE]")
if "Installazione di  in corso ..." = $sTitle then
   WinWait("Installazione di  in corso", "InstallShield Wizard per CyberLink")
   WinActivate("Installazione di  in corso", "InstallShield Wizard per CyberLink")
   ControlClick("Installazione di  in corso", "", "Button1")
   WinWaitActive("Installazione di  in corso", "Contratto di Licenza per l'Utente")
   ControlClick("Installazione di  in corso", "", "Button2")
   Sleep(3000)
   $sText = WinGetText("[ACTIVE]")
   ConsoleWrite($sText)
   Local $aArray = StringSplit($sText, @CRLF)
   For $i = 1 to $aArray[0]
       Local $iLength = StringLen($aArray[$i])
       MsgBox($MB_SYSTEMMODAL, "", "The length of this string is " & $iLength & " characters.")
        if $aArray[$i]="Informazioni sul cliente" then
            ControlClick("Installazione di  in corso", "", "Button2")
            WinWaitActive("Installazione di  in corso", "Cartella di destinazione")
            ControlClick("Installazione di  in corso", "", "Button1")
            WinWaitActive("Installazione di  in corso", "L'installazione aggiungerà le icone dei programmi")
            ControlClick("Installazione di  in corso", "", "Button2")
            WinWaitActive("Installazione di  in corso", "Il Setup ha completato l'installazione CyberLink")
            ControlClick("Installazione di  in corso", "", "Button4")
            else
            WinWaitActive("Installazione di  in corso", "Cartella di destinazione")
            ControlClick("Installazione di  in corso", "", "Button1")
            WinWaitActive("Installazione di  in corso", "L'installazione aggiungerà le icone dei programmi")
            ControlClick("Installazione di  in corso", "", "Button2")
            WinWaitActive("Installazione di  in corso", "Il Setup ha completato l'installazione CyberLink")
            ControlClick("Installazione di  in corso", "", "Button4")
        EndIf
    Next
Else
   WinWait("Installazione di CyberLink", "InstallShield Wizard per CyberLink")
   WinActivate("Installazione di CyberLink", "InstallShield Wizard per CyberLink")
   ControlClick("Installazione di CyberLink", "", "Button1")
   WinWaitActive("Installazione di CyberLink", "Contratto di Licenza per l'Utente")
   ControlClick("Installazione di CyberLink", "", "Button2")
   Sleep(3000)
   $sText = WinGetText("[ACTIVE]")
   ConsoleWrite($sText)
   Local $aArray = StringSplit($sText, @CRLF)
   For $i = 1 to $aArray[0]
       Local $iLength = StringLen($aArray[$i])
       MsgBox($MB_SYSTEMMODAL, "", "The length of this string is " & $iLength & " characters.")
        if $aArray[$i]="Informazioni sul cliente" then
            ControlClick("Installazione di CyberLink", "", "Button2")
            WinWaitActive("Installazione di CyberLink", "Cartella di destinazione")
            ControlClick("Installazione di CyberLink", "", "Button1")
            WinWaitActive("Installazione di CyberLink", "L'installazione aggiungerà le icone dei programmi")
            ControlClick("Installazione di CyberLink", "", "Button2")
            WinWaitActive("Installazione di CyberLink", "Il Setup ha completato l'installazione CyberLink")
            ControlClick("Installazione di CyberLink", "", "Button4")
            else
            WinWaitActive("Installazione di CyberLink", "Cartella di destinazione")
            ControlClick("Installazione di CyberLink", "", "Button1")
            WinWaitActive("Installazione di CyberLink", "L'installazione aggiungerà le icone dei programmi")
            ControlClick("Installazione di CyberLink", "", "Button2")
            WinWaitActive("Installazione di CyberLink", "Il Setup ha completato l'installazione CyberLink")
            ControlClick("Installazione di CyberLink", "", "Button4")
        EndIf
    Next
EndIf
Next

I have only one popup

Img_01_08_2016_09_35_01.jpg

 

 

if I run this script

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

 AutoIt Version: 3.3.14.2
 Author:         myName

 Script Function:
    Template AutoIt script.

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

; Script Start - Add your code below here
#RequireAdmin
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
$sUserName = @UserName
Local $aArray[1]
$aArray[0] = "Brush.exe"
For $vElement In $aArray
Run($vElement)
WinWait("Seleziona la lingua dell'installazione")
WinActivate("Seleziona la lingua dell'installazione")
ControlClick("Seleziona la lingua dell'installazione", "", "Button1")
WinWait("Installazione di CyberLink", "InstallShield Wizard per CyberLink", 10)
Local $sTitle = WinGetTitle("[ACTIVE]")
if "Installazione di  in corso ..." = $sTitle then
   WinWait("Installazione di  in corso", "InstallShield Wizard per CyberLink")
   WinActivate("Installazione di  in corso", "InstallShield Wizard per CyberLink")
   ControlClick("Installazione di  in corso", "", "Button1")
   WinWaitActive("Installazione di  in corso", "Contratto di Licenza per l'Utente")
   ControlClick("Installazione di  in corso", "", "Button2")
   Sleep(3000)
   $sText = WinGetText("[ACTIVE]")
   ConsoleWrite($sText)
   Local $aArray = StringSplit($sText, @CRLF)
   For $i = 1 to $aArray[0]
       Local $iLength = StringLen($aArray[$i])
       MsgBox($MB_SYSTEMMODAL, "", "The length of this string is " & $iLength & " characters.")
   Next
Else
   WinWait("Installazione di CyberLink", "InstallShield Wizard per CyberLink")
   WinActivate("Installazione di CyberLink", "InstallShield Wizard per CyberLink")
   ControlClick("Installazione di CyberLink", "", "Button1")
   WinWaitActive("Installazione di CyberLink", "Contratto di Licenza per l'Utente")
   ControlClick("Installazione di CyberLink", "", "Button2")
   Sleep(3000)
   $sText = WinGetText("[ACTIVE]")
   ConsoleWrite($sText)
   Local $aArray = StringSplit($sText, @CRLF)
   For $i = 1 to $aArray[0
       Local $iLength = StringLen($aArray[$i])
       MsgBox($MB_SYSTEMMODAL, "", "The length of this string is " & $iLength & " characters.")
   Next
EndIf
Next

I don't have any popup

 

 

if I run this script

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

 AutoIt Version: 3.3.14.2
 Author:         myName

 Script Function:
    Template AutoIt script.

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

; Script Start - Add your code below here
#RequireAdmin
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
$sUserName = @UserName
Local $aArray[1]
$aArray[0] = "Brush.exe"
For $vElement In $aArray
Run($vElement)
WinWait("Seleziona la lingua dell'installazione")
WinActivate("Seleziona la lingua dell'installazione")
ControlClick("Seleziona la lingua dell'installazione", "", "Button1")
WinWait("Installazione di CyberLink", "InstallShield Wizard per CyberLink", 10)
Local $sTitle = WinGetTitle("[ACTIVE]")
if "Installazione di  in corso ..." = $sTitle then
   WinWait("Installazione di  in corso", "InstallShield Wizard per CyberLink")
   WinActivate("Installazione di  in corso", "InstallShield Wizard per CyberLink")
   ControlClick("Installazione di  in corso", "", "Button1")
   WinWaitActive("Installazione di  in corso", "Contratto di Licenza per l'Utente")
   ControlClick("Installazione di  in corso", "", "Button2")
   Sleep(3000)
   $sText = WinGetText("[ACTIVE]")
   ConsoleWrite($sText)
   Local $aArray = StringSplit($sText, @CRLF)
   For $i = 1 to $aArray[0]     ; That means loop 1 to 14
       Local $iLength = StringLen($aArray[$i])
       MsgBox($MB_SYSTEMMODAL, "", "The length of this string is " & $iLength & " characters.")
   Next
    For $i = 1 To $aArray[0] ; Loop through the array returned by StringSplit to display the individual values.
        MsgBox($MB_SYSTEMMODAL, "", "$aArray[" & $i & "] - " & $aArray[$i])
        if $aArray[$i]="Informazioni sul cliente" then
            ControlClick("Installazione di  in corso", "", "Button2")
            WinWaitActive("Installazione di  in corso", "Cartella di destinazione")
            ControlClick("Installazione di  in corso", "", "Button1")
            WinWaitActive("Installazione di  in corso", "L'installazione aggiungerà le icone dei programmi")
            ControlClick("Installazione di  in corso", "", "Button2")
            WinWaitActive("Installazione di  in corso", "Il Setup ha completato l'installazione CyberLink")
            ControlClick("Installazione di  in corso", "", "Button4")
            else
            WinWaitActive("Installazione di  in corso", "Cartella di destinazione")
            ControlClick("Installazione di  in corso", "", "Button1")
            WinWaitActive("Installazione di  in corso", "L'installazione aggiungerà le icone dei programmi")
            ControlClick("Installazione di  in corso", "", "Button2")
            WinWaitActive("Installazione di  in corso", "Il Setup ha completato l'installazione CyberLink")
            ControlClick("Installazione di  in corso", "", "Button4")
        EndIf
    Next
Else
   WinWait("Installazione di CyberLink", "InstallShield Wizard per CyberLink")
   WinActivate("Installazione di CyberLink", "InstallShield Wizard per CyberLink")
   ControlClick("Installazione di CyberLink", "", "Button1")
   WinWaitActive("Installazione di CyberLink", "Contratto di Licenza per l'Utente")
   ControlClick("Installazione di CyberLink", "", "Button2")
   Sleep(3000)
   $sText = WinGetText("[ACTIVE]")
   ConsoleWrite($sText)
   Local $aArray = StringSplit($sText, @CRLF)
   For $i = 1 to $aArray[0]     ; That means loop 1 to 14
       Local $iLength = StringLen($aArray[$i])
       MsgBox($MB_SYSTEMMODAL, "", "The length of this string is " & $iLength & " characters.")
   Next
    For $i = 1 To $aArray[0] ; Loop through the array returned by StringSplit to display the individual values.
        MsgBox($MB_SYSTEMMODAL, "", "$aArray[" & $i & "] - " & $aArray[$i])
        if $aArray[$i]="Informazioni sul cliente" then
            ControlClick("Installazione di CyberLink", "", "Button2")
            WinWaitActive("Installazione di CyberLink", "Cartella di destinazione")
            ControlClick("Installazione di CyberLink", "", "Button1")
            WinWaitActive("Installazione di CyberLink", "L'installazione aggiungerà le icone dei programmi")
            ControlClick("Installazione di CyberLink", "", "Button2")
            WinWaitActive("Installazione di CyberLink", "Il Setup ha completato l'installazione CyberLink")
            ControlClick("Installazione di CyberLink", "", "Button4")
            else
            WinWaitActive("Installazione di CyberLink", "Cartella di destinazione")
            ControlClick("Installazione di CyberLink", "", "Button1")
            WinWaitActive("Installazione di CyberLink", "L'installazione aggiungerà le icone dei programmi")
            ControlClick("Installazione di CyberLink", "", "Button2")
            WinWaitActive("Installazione di CyberLink", "Il Setup ha completato l'installazione CyberLink")
            ControlClick("Installazione di CyberLink", "", "Button4")
        EndIf
    Next
EndIf
Next

I have a popup for every phrase of Visible Text

Link to comment
Share on other sites

I just use tidy on your code. Now it is properly indented.

;Url: https://www.autoitscript.com/forum/topic/183850-wingettextactive-function/?page=4#comment-1320596
;Title: WinGetText("[ACTIVE]") function - Page 4 - AutoIt General Help and Support - AutoIt Forums
;AutoIt Code Runner by DanyFirex and Dany3j :)

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

    AutoIt Version: 3.3.14.2
    Author:     myName

    Script Function:
    Template AutoIt script.

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

; Script Start - Add your code below here
#RequireAdmin
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
$sUserName = @UserName
Local $aArray[1]
$aArray[0] = "Brush.exe"
For $vElement In $aArray
    Run($vElement)
    WinWait("Seleziona la lingua dell'installazione")
    WinActivate("Seleziona la lingua dell'installazione")
    ControlClick("Seleziona la lingua dell'installazione", "", "Button1")
    WinWait("Installazione di CyberLink", "InstallShield Wizard per CyberLink", 10)
    Local $sTitle = WinGetTitle("[ACTIVE]")
    If "Installazione di in corso ..." = $sTitle Then
        WinWait("Installazione di in corso", "InstallShield Wizard per CyberLink")
        WinActivate("Installazione di in corso", "InstallShield Wizard per CyberLink")
        ControlClick("Installazione di in corso", "", "Button1")
        WinWaitActive("Installazione di in corso", "Contratto di Licenza per l'Utente")
        ControlClick("Installazione di in corso", "", "Button2")
        Sleep(3000)
        $sText = WinGetText("[ACTIVE]")
        ConsoleWrite($sText)
        Local $aArray = StringSplit($sText, @CRLF)
        For $i = 1 To $aArray[0]
            Local $iLength = StringLen($aArray[$i])
            MsgBox($MB_SYSTEMMODAL, "", "The length of this string is " & $iLength & " characters.")
        Next
    Else
        WinWait("Installazione di CyberLink", "InstallShield Wizard per CyberLink")
        WinActivate("Installazione di CyberLink", "InstallShield Wizard per CyberLink")
        ControlClick("Installazione di CyberLink", "", "Button1")
        WinWaitActive("Installazione di CyberLink", "Contratto di Licenza per l'Utente")
        ControlClick("Installazione di CyberLink", "", "Button2")
        Sleep(3000)
        $sText = WinGetText("[ACTIVE]")
        ConsoleWrite($sText)
        Local $aArray = StringSplit($sText, @CRLF)
        For $i = 1 To $aArray[0
            Local $iLength = StringLen($aArray[$i])
            MsgBox($MB_SYSTEMMODAL, "", "The length of this string is " & $iLength & " characters.")
        Next
    EndIf
Next

1. Why did you use For loop when $aArray have just one element ? I think that first for loop is unnecessary.

2. Why don't you use proper error checking in every new steps. Use consolewrite for error checking so that you can verify that you will pass each step successfully. That will help you to find where is the actual problem lies. 

3. You have used ConsoleWrite two times in this but that is not the proper use. This is how you use console write;

ConsoleWrite("Some Text to identify the area --- "  & $Variable_Name & @CRLF) 

By this method, you can read all problems from console. 

 

 

Spoiler

My Contributions

Glance GUI Library - A gui library based on Windows api functions. Written in Nim programming language.

UDF Link Viewer   --- A tool to visit the links of some most important UDFs 

 Includer_2  ----- A tool to type the #include statement automatically 

 Digits To Date  ----- date from 3 integer values

PrintList ----- prints arrays into console for testing.

 Alert  ------ An alternative for MsgBox 

 MousePosition ------- A simple tooltip display of mouse position

GRM Helper -------- A littile tool to help writing code with GUIRegisterMsg function

Access_UDF  -------- An UDF for working with access database files. (.*accdb only)

 

Link to comment
Share on other sites

#RequireAdmin
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
$sUserName = @UserName
Local $aArray[1]
$aArray[0] = "Brush.exe"
For $vElement In $aArray
Run($vElement)
WinWait("Seleziona la lingua dell'installazione")
WinActivate("Seleziona la lingua dell'installazione")
ControlClick("Seleziona la lingua dell'installazione", "", "Button1")
WinWait("Installazione di CyberLink", "InstallShield Wizard per CyberLink", 10)
Local $sTitle = WinGetTitle("[ACTIVE]")
if "Installazione di  in corso ..." = $sTitle then
   WinWait("Installazione di  in corso", "InstallShield Wizard per CyberLink")
   WinActivate("Installazione di  in corso", "InstallShield Wizard per CyberLink")
   ControlClick("Installazione di  in corso", "", "Button1")
   WinWaitActive("Installazione di  in corso", "Contratto di Licenza per l'Utente")
   ControlClick("Installazione di  in corso", "", "Button2")
   Sleep(3000)
   $sText = WinGetText("[ACTIVE]")
   ConsoleWrite("WinGetText"  & $sText & @CRLF)
   Local $aArray = StringSplit($sText, @CRLF)
   ConsoleWrite("StringSplit"  & $aArray & @CRLF)
   For $i = 1 to $aArray[0]
       Local $iLength = StringLen($aArray[$i])
       MsgBox($MB_SYSTEMMODAL, "", "The length of this string is " & $iLength & " characters.")
   Next
    For $i = 1 To $aArray[0]
        MsgBox($MB_SYSTEMMODAL, "", "$aArray[" & $i & "] - " & $aArray[$i])
        if $aArray[$i]="Informazioni sul cliente" then
            ConsoleWrite("if array"  & $aArray[$i] & @CRLF)
            ControlClick("Installazione di  in corso", "", "Button2")
            WinWaitActive("Installazione di  in corso", "Cartella di destinazione")
            ControlClick("Installazione di  in corso", "", "Button1")
            WinWaitActive("Installazione di  in corso", "L'installazione aggiungerà le icone dei programmi")
            ControlClick("Installazione di  in corso", "", "Button2")
            WinWaitActive("Installazione di  in corso", "Il Setup ha completato l'installazione CyberLink")
            ControlClick("Installazione di  in corso", "", "Button4")
            else
            WinWaitActive("Installazione di  in corso", "Cartella di destinazione")
            ControlClick("Installazione di  in corso", "", "Button1")
            WinWaitActive("Installazione di  in corso", "L'installazione aggiungerà le icone dei programmi")
            ControlClick("Installazione di  in corso", "", "Button2")
            WinWaitActive("Installazione di  in corso", "Il Setup ha completato l'installazione CyberLink")
            ControlClick("Installazione di  in corso", "", "Button4")
        EndIf
    Next
Else
   WinWait("Installazione di CyberLink", "InstallShield Wizard per CyberLink")
   WinActivate("Installazione di CyberLink", "InstallShield Wizard per CyberLink")
   ControlClick("Installazione di CyberLink", "", "Button1")
   WinWaitActive("Installazione di CyberLink", "Contratto di Licenza per l'Utente")
   ControlClick("Installazione di CyberLink", "", "Button2")
   Sleep(3000)
   $sText = WinGetText("[ACTIVE]")
   ConsoleWrite("WinGetText"  & $sText & @CRLF)
   Local $aArray = StringSplit($sText, @CRLF)
   ConsoleWrite("StringSplit"  & $aArray & @CRLF)
   For $i = 1 to $aArray[0]
       Local $iLength = StringLen($aArray[$i])
       MsgBox($MB_SYSTEMMODAL, "", "The length of this string is " & $iLength & " characters.")
   Next
    For $i = 1 To $aArray[0]
        MsgBox($MB_SYSTEMMODAL, "", "$aArray[" & $i & "] - " & $aArray[$i])
        if $aArray[$i]="Informazioni sul cliente" then
            ConsoleWrite("if array"  & $aArray[$i] & @CRLF)
            ControlClick("Installazione di CyberLink", "", "Button2")
            WinWaitActive("Installazione di CyberLink", "Cartella di destinazione")
            ControlClick("Installazione di CyberLink", "", "Button1")
            WinWaitActive("Installazione di CyberLink", "L'installazione aggiungerà le icone dei programmi")
            ControlClick("Installazione di CyberLink", "", "Button2")
            WinWaitActive("Installazione di CyberLink", "Il Setup ha completato l'installazione CyberLink")
            ControlClick("Installazione di CyberLink", "", "Button4")
            else
            WinWaitActive("Installazione di CyberLink", "Cartella di destinazione")
            ControlClick("Installazione di CyberLink", "", "Button1")
            WinWaitActive("Installazione di CyberLink", "L'installazione aggiungerà le icone dei programmi")
            ControlClick("Installazione di CyberLink", "", "Button2")
            WinWaitActive("Installazione di CyberLink", "Il Setup ha completato l'installazione CyberLink")
            ControlClick("Installazione di CyberLink", "", "Button4")
        EndIf
    Next
EndIf
Next

No ConsoleWrite output

 

Is this right?

ConsoleWrite("if array"  & $aArray[$i] & @CRLF)

(line 32 and 67)

Link to comment
Share on other sites

1 hour ago, trof said:

ConsoleWrite("StringSplit"  & $aArray & @CRLF)

This is wrong. You need to check either array is populated or any specific element.  May be checking Ubound of that array is good. We will know that if the array is populated properly. 

And checking the length of array element is unnecessary here. Because it is not your aim. I said it because we need to make sure both strings has same length. Here, we don't need that.

And please write a ConsoleWrite function right after your "Else" statement. Make sure that code is properly indented. Use Tidy (Ctrl + T) for it. 

 

Spoiler

My Contributions

Glance GUI Library - A gui library based on Windows api functions. Written in Nim programming language.

UDF Link Viewer   --- A tool to visit the links of some most important UDFs 

 Includer_2  ----- A tool to type the #include statement automatically 

 Digits To Date  ----- date from 3 integer values

PrintList ----- prints arrays into console for testing.

 Alert  ------ An alternative for MsgBox 

 MousePosition ------- A simple tooltip display of mouse position

GRM Helper -------- A littile tool to help writing code with GUIRegisterMsg function

Access_UDF  -------- An UDF for working with access database files. (.*accdb only)

 

Link to comment
Share on other sites

I installed new Scite (thanks to AutoBert) and now I have ConsoleWrite output

For this script

#RequireAdmin
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
$sUserName = @UserName
Local $aArray[1]
$aArray[0] = "Brush.exe"
For $vElement In $aArray
Run($vElement)
WinWait("Seleziona la lingua dell'installazione")
WinActivate("Seleziona la lingua dell'installazione")
ControlClick("Seleziona la lingua dell'installazione", "", "Button1")
WinWait("Installazione di CyberLink", "InstallShield Wizard per CyberLink", 10)
Local $sTitle = WinGetTitle("[ACTIVE]")
if "Installazione di  in corso ..." = $sTitle then
   WinWait("Installazione di  in corso", "InstallShield Wizard per CyberLink")
   WinActivate("Installazione di  in corso", "InstallShield Wizard per CyberLink")
   ControlClick("Installazione di  in corso", "", "Button1")
   WinWaitActive("Installazione di  in corso", "Contratto di Licenza per l'Utente")
   ControlClick("Installazione di  in corso", "", "Button2")
   Sleep(3000)
   $sText = WinGetText("[ACTIVE]")
   ConsoleWrite("WinGetText"  & $sText & @CRLF)
   Local $aArray = StringSplit($sText, @CRLF)
   ConsoleWrite("StringSplit"  & $aArray & @CRLF)
   For $i = 1 to $aArray[0]
       Local $iLength = StringLen($aArray[$i])
       MsgBox($MB_SYSTEMMODAL, "", "The length of this string is " & $iLength & " characters.")
   Next
    For $i = 1 To $aArray[0]
        MsgBox($MB_SYSTEMMODAL, "", "$aArray[" & $i & "] - " & $aArray[$i])
        if $aArray[$i]="Informazioni sul cliente" then
            ConsoleWrite("if array"  & $aArray[$i] & @CRLF)
            ControlClick("Installazione di  in corso", "", "Button2")
            WinWaitActive("Installazione di  in corso", "Cartella di destinazione")
            ControlClick("Installazione di  in corso", "", "Button1")
            WinWaitActive("Installazione di  in corso", "L'installazione aggiungerà le icone dei programmi")
            ControlClick("Installazione di  in corso", "", "Button2")
            WinWaitActive("Installazione di  in corso", "Il Setup ha completato l'installazione CyberLink")
            ControlClick("Installazione di  in corso", "", "Button4")
            else
            WinWaitActive("Installazione di  in corso", "Cartella di destinazione")
            ControlClick("Installazione di  in corso", "", "Button1")
            WinWaitActive("Installazione di  in corso", "L'installazione aggiungerà le icone dei programmi")
            ControlClick("Installazione di  in corso", "", "Button2")
            WinWaitActive("Installazione di  in corso", "Il Setup ha completato l'installazione CyberLink")
            ControlClick("Installazione di  in corso", "", "Button4")
        EndIf
    Next
Else
ConsoleWrite("else"  & $sTitle & @CRLF)
   WinWait("Installazione di CyberLink", "InstallShield Wizard per CyberLink")
   WinActivate("Installazione di CyberLink", "InstallShield Wizard per CyberLink")
   ControlClick("Installazione di CyberLink", "", "Button1")
   WinWaitActive("Installazione di CyberLink", "Contratto di Licenza per l'Utente")
   ControlClick("Installazione di CyberLink", "", "Button2")
   Sleep(3000)
   $sText = WinGetText("[ACTIVE]")
   ConsoleWrite("WinGetText"  & $sText & @CRLF)
   Local $aArray = StringSplit($sText, @CRLF)
   ConsoleWrite("StringSplit"  & $aArray & @CRLF)
   For $i = 1 to $aArray[0]
       Local $iLength = StringLen($aArray[$i])
       MsgBox($MB_SYSTEMMODAL, "", "The length of this string is " & $iLength & " characters.")
   Next
    For $i = 1 To $aArray[0]
        MsgBox($MB_SYSTEMMODAL, "", "$aArray[" & $i & "] - " & $aArray[$i])
        if $aArray[$i]="Informazioni sul cliente" then
            ConsoleWrite("if array"  & $aArray[$i] & @CRLF)
            ControlClick("Installazione di CyberLink", "", "Button2")
            WinWaitActive("Installazione di CyberLink", "Cartella di destinazione")
            ControlClick("Installazione di CyberLink", "", "Button1")
            WinWaitActive("Installazione di CyberLink", "L'installazione aggiungerà le icone dei programmi")
            ControlClick("Installazione di CyberLink", "", "Button2")
            WinWaitActive("Installazione di CyberLink", "Il Setup ha completato l'installazione CyberLink")
            ControlClick("Installazione di CyberLink", "", "Button4")
            else
            WinWaitActive("Installazione di CyberLink", "Cartella di destinazione")
            ControlClick("Installazione di CyberLink", "", "Button1")
            WinWaitActive("Installazione di CyberLink", "L'installazione aggiungerà le icone dei programmi")
            ControlClick("Installazione di CyberLink", "", "Button2")
            WinWaitActive("Installazione di CyberLink", "Il Setup ha completato l'installazione CyberLink")
            ControlClick("Installazione di CyberLink", "", "Button4")
        EndIf
    Next
EndIf
Next

I have this output

elseInstallazione di CyberLink Brush 16x9 1.0 in corso ...
WinGetText

Digitare il proprio nome e il nome della propria società.
&Nome utente:
Ottavio
Nome &società:
Company
< &Indietro
&Avanti >
Annulla
Informazioni sul cliente
Digitare i propri dati.

StringSplit
 

 

As you can see StringSplit is blank. This is very strange because

For $i = 1 to $aArray[0]
       Local $iLength = StringLen($aArray[$i])
       MsgBox($MB_SYSTEMMODAL, "", "The length of this string is " & $iLength & " characters.")
   Next

uses the $aArray variable. It isn't blank and it follows StringSplit

Link to comment
Share on other sites

This script works well. I used  stringinstr (thanks to junkew)

 

#RequireAdmin
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
$sUserName = @UserName
Local $aArray[1]
$aArray[0] = "Brush.exe"
For $vElement In $aArray
Run($vElement)
WinWait("Seleziona la lingua dell'installazione")
WinActivate("Seleziona la lingua dell'installazione")
ControlClick("Seleziona la lingua dell'installazione", "", "Button1")
WinWait("Installazione di CyberLink", "InstallShield Wizard per CyberLink", 10)
Local $sTitle = WinGetTitle("[ACTIVE]")
if "Installazione di  in corso ..." = $sTitle then
   WinWait("Installazione di CyberLink", "InstallShield Wizard per CyberLink")
   WinActivate("Installazione di CyberLink", "InstallShield Wizard per CyberLink")
   ControlClick("Installazione di CyberLink", "", "Button1")
   WinWaitActive("Installazione di CyberLink", "Contratto di Licenza per l'Utente")
   ControlClick("Installazione di CyberLink", "", "Button2")
   Sleep(3000)
   $sText = WinGetText("[ACTIVE]")
   ConsoleWrite("WinGetText"  & $sText & @CRLF)
   if StringInStr($sText, "Informazioni sul cliente") = "136" then
    ControlClick("Installazione di CyberLink", "", "Button2")
    WinWaitActive("Installazione di CyberLink", "Cartella di destinazione")
    ControlClick("Installazione di CyberLink", "", "Button1")
    WinWaitActive("Installazione di CyberLink", "L'installazione aggiungerà le icone dei programmi")
    ControlClick("Installazione di CyberLink", "", "Button2")
    WinWaitActive("Installazione di CyberLink", "Il Setup ha completato l'installazione CyberLink")
    ControlClick("Installazione di CyberLink", "", "Button4")
   else
    WinWaitActive("Installazione di CyberLink", "Cartella di destinazione")
    ControlClick("Installazione di CyberLink", "", "Button1")
    WinWaitActive("Installazione di CyberLink", "L'installazione aggiungerà le icone dei programmi")
    ControlClick("Installazione di CyberLink", "", "Button2")
    WinWaitActive("Installazione di CyberLink", "Il Setup ha completato l'installazione CyberLink")
    ControlClick("Installazione di CyberLink", "", "Button4")
    EndIf
Else
ConsoleWrite("else"  & $sTitle & @CRLF)
   WinWait("Installazione di CyberLink", "InstallShield Wizard per CyberLink")
   WinActivate("Installazione di CyberLink", "InstallShield Wizard per CyberLink")
   ControlClick("Installazione di CyberLink", "", "Button1")
   WinWaitActive("Installazione di CyberLink", "Contratto di Licenza per l'Utente")
   ControlClick("Installazione di CyberLink", "", "Button2")
   Sleep(3000)
   $sText = WinGetText("[ACTIVE]")
   ConsoleWrite("WinGetText"  & $sText & @CRLF)
   if StringInStr($sText, "Informazioni sul cliente") = "136" then
    ControlClick("Installazione di CyberLink", "", "Button2")
    WinWaitActive("Installazione di CyberLink", "Cartella di destinazione")
    ControlClick("Installazione di CyberLink", "", "Button1")
    WinWaitActive("Installazione di CyberLink", "L'installazione aggiungerà le icone dei programmi")
    ControlClick("Installazione di CyberLink", "", "Button2")
    WinWaitActive("Installazione di CyberLink", "Il Setup ha completato l'installazione CyberLink")
    ControlClick("Installazione di CyberLink", "", "Button4")
   else
    WinWaitActive("Installazione di CyberLink", "Cartella di destinazione")
    ControlClick("Installazione di CyberLink", "", "Button1")
    WinWaitActive("Installazione di CyberLink", "L'installazione aggiungerà le icone dei programmi")
    ControlClick("Installazione di CyberLink", "", "Button2")
    WinWaitActive("Installazione di CyberLink", "Il Setup ha completato l'installazione CyberLink")
    ControlClick("Installazione di CyberLink", "", "Button4")
    EndIf
EndIf
Next

 

However, I'd like to use  stringsplit and I'd like to understand why it doesn't work.

Link to comment
Share on other sites

 ConsoleWrite("StringSplit"  & $aArray & @CRLF) 

This line is waste. What are you trying to write in console by using this line ? A whole array ?. I said you to check the array is populated by using ubound key word. So that you will know if the array has all the elements. like this

 ConsoleWrite("THis is array's element count - "  & Ubound($aArray) & @CRLF)

And creating a variable inside a loop is bad practice.  Declare the variable above the for loop. 

Spoiler

My Contributions

Glance GUI Library - A gui library based on Windows api functions. Written in Nim programming language.

UDF Link Viewer   --- A tool to visit the links of some most important UDFs 

 Includer_2  ----- A tool to type the #include statement automatically 

 Digits To Date  ----- date from 3 integer values

PrintList ----- prints arrays into console for testing.

 Alert  ------ An alternative for MsgBox 

 MousePosition ------- A simple tooltip display of mouse position

GRM Helper -------- A littile tool to help writing code with GUIRegisterMsg function

Access_UDF  -------- An UDF for working with access database files. (.*accdb only)

 

Link to comment
Share on other sites

Also, I'd like to remove initial array

Local $aArray[18]
$aArray[0] = "Around the World.exe"
$aArray[1] = "Autumn Romance.exe"
$aArray[2] = "Baby.exe"
$aArray[3] = "Birthday Jolly.exe"
$aArray[4] = "Brush.exe"
$aArray[5] = "Eternal Love.exe"
$aArray[6] = "Green Clover.exe"
$aArray[7] = "Interaction.exe"
$aArray[8] = "Lovely Day.exe"
$aArray[9] = "LowerThird 1.exe"
$aArray[10] = "LowerThird 2.exe"
$aArray[11] = "Rainbow Delights.exe"
$aArray[12] = "Road Trip.exe"
$aArray[13] = "True Love.exe"
$aArray[14] = "Under the Sea.exe"
$aArray[15] = "Vintage Memories.exe"
$aArray[16] = "Frosted Glass.exe"
$aArray[17] = "Tinted Glass.exe"
For $vElement In $aArray
Run($vElement)

and I'd like to execute the script for every item present in a folder.

I use in batch scripts

FOR %%i in (*.exe) DO SET executable=%%i
start /wait %executable%

 

Link to comment
Share on other sites

16 hours ago, kcvinu said:

 ConsoleWrite("StringSplit"  & $aArray & @CRLF) 

This line is waste. What are you trying to write in console by using this line ? A whole array ?. I said you to check the array is populated by using ubound key word. So that you will know if the array has all the elements. like this

 ConsoleWrite("THis is array's element count - "  & Ubound($aArray) & @CRLF)

And creating a variable inside a loop is bad practice.  Declare the variable above the for loop. 

 
 

THis is array's element count - 14

Link to comment
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
 Share

  • Recently Browsing   0 members

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