Jump to content

Recommended Posts

Quantumation
#include <AD.au3>
#include <Array.au3>

;~ GUI INCLUDES
#include <GuiEdit.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1_1 = GUICreate("Get Managers", 592, 516, -1, -1)
Global $Edit1 = GUICtrlCreateEdit("", 16, 112, 177, 361)
GUICtrlSetData(-1, "")
Global $Edit2 = GUICtrlCreateEdit("", 200, 112, 385, 177)
GUICtrlSetData(-1, "")
Global $Label1 = GUICtrlCreateLabel("GROUP NAMES", 16, 88, 135, 24)
GUICtrlSetFont(-1, 12, 800, 4, "MS Sans Serif")
Global $Label2 = GUICtrlCreateLabel("Group Name - Manager Names", 200, 88, 251, 24)
GUICtrlSetFont(-1, 12, 800, 4, "MS Sans Serif")
Global $Button1 = GUICtrlCreateButton("Get Managed By", 32, 52, 163, 31)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
Global $Button2 = GUICtrlCreateButton("Copy Automated", 456, 296, 99, 25)
Global $Button3 = GUICtrlCreateButton("CLEAR ALL", 440, 24, 83, 25)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
Global $Label3 = GUICtrlCreateLabel("Created by - Clint Smith", 185, 480, 212, 24)
GUICtrlSetFont(-1, 12, 800, 0, "Century")
Global $Label4 = GUICtrlCreateLabel("Enter group names with no leading spaces", 16, 8, 244, 17)
GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
Global $Label5 = GUICtrlCreateLabel("Each Group name should be on its own line", 16, 32, 250, 17)
GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
Global $Edit4 = GUICtrlCreateEdit("", 200, 328, 385, 145)
GUICtrlSetData(-1, "")
Global $Label8 = GUICtrlCreateLabel("Automated Groups", 200, 304, 156, 24)
GUICtrlSetFont(-1, 12, 800, 4, "MS Sans Serif")
Global $Button4 = GUICtrlCreateButton("Copy All Output", 464, 80, 99, 25)
Global $Label9 = GUICtrlCreateLabel("This will Clear all boxes", 328, 32, 112, 17)
Global $Label6 = GUICtrlCreateLabel("Input", 160, 88, 28, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            GetManBy()
        Case $Button3

    EndSwitch
WEnd

Func GetManBy()
    Local $dispname[0]
    Local $groupnames = StringSplit(GUICtrlRead($Edit1), @CR)
    _ArrayDisplay($groupnames)
    _AD_Open()
    If @error Then Exit MsgBox(16, "Active Directory", "Function _AD_Open encountered a problem. @error = " & @error & ", @extended = " & @extended)

    For $i = 1 To $groupnames[0]

        $GRPname = _AD_GetObjectProperties($groupnames[$i], "displayname")
        If $GRPname = @error Then Return MsgBox(16, "Group Not Found", $groupnames[$i] & " was not found")
        $info = _AD_GetObjectProperties($groupnames[$i], "info")
        Global $Managedby = _AD_GetObjectProperties($groupnames[$i], "managedBy,msExchCoManagedByLink")
            If $Managedby = @error Then
                MsgBox(1, "No Manager for group", $groupnames[$i] & " - Has no managers")
            EndIf
            _ArrayDisplay($Managedby)
            
         
        For $f = 1 To $Managedby[0][0]
            _ArrayDisplay($Managedby)
;~          Here is the problem below.
            $add = _AD_FQDNToDisplayname($Managedby[$f][1]) 
            _ArrayAdd($dispname, $add, 0)
        Next

        $Managers = _ArrayToString($dispname, ",")
        $str = StringInStr($info[1][1], "automated")
        If $str = 0 Then
        GUICtrlSetData($Edit2, $GRPname & " - " & $Managers & @CRLF)
        ElseIf $str > 0 Then
        GUICtrlSetData($Edit4, $GRPname & " - Automated Group" & @CRLF)
        EndIf
    Next
    _AD_Close()
EndFunc   ;==>GetManBy

I have two groups that i created with all the correct properties to make sure this script has data in all fields.

Basically i'm trying to run a for look inside a for loop and the loops aren't playing well together for some reason. Can anyone help?

Below is the error I get when i try to run this script.

"C:\Users\casmith\Documents\Autoit Scripts\GetManAndCoMan.au3" (72) : ==> Subscript used on non-accessible variable.:
For $f = 1 To $Managedby[0][0]
For $f = 1 To $Managedby^ ERROR
->04:00:21 AutoIt3.exe ended.rc:1
+>04:00:21 AutoIt3Wrapper Finished.
>Exit code: 1    Time: 10.42

Edited by Quantumation
added proper error

Share this post


Link to post
Share on other sites
AutoBert

Extend your script by inserting some debuglines:

ConsoleWrite('$Managedby[0][0]=' & $Managedby[0][0] & @CRLF)
        For $f = 1 To $Managedby[0][0]
            ConsoleWrite($f & ': ' & $Managedby[$f][1] & @CRLF)
            _ArrayDisplay($Managedby)
;~          Here is the problem below.
            $add = _AD_FQDNToDisplayname($Managedby[$f][1])
            ConsoleWrite($add&@TAB&@error&' '&@extended)
            _ArrayAdd($dispname, $add); the column is only in 2D necesarry: , 0)
        Next

The console output will help to find and solve the problem.

Share this post


Link to post
Share on other sites
Quantumation

@AutoBert Thank you, here is what i received but as i look through it i'm not quite sure why it's stopping there.

--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
$Managedby[0][0]=4
1: CN=Clint Smith,OU=Service Desk
Clint Smith          0 02: CN=Tony Alzola,OU=Service Desk
Tony Alzola         0 03: CN=Ryan McIntosh,OU=Service Desk
Ryan McIntosh    0 04: CN=Kody Courter,OU=Service Desk
Kody Courter       0 0"C:\Users\casmith\Documents\Autoit Scripts\GetManAndCoMan.au3" (72) : ==> Subscript used on non-accessible variable.:
ConsoleWrite('$Managedby[0][0]=' & $Managedby[0][0] & @CRLF)
ConsoleWrite('$Managedby[0][0]=' & $Managedby^ ERROR
->04:10:46 AutoIt3.exe ended.rc:1
+>04:10:46 AutoIt3Wrapper Finished.
>Exit code: 1    Time: 27.05

 

It seems to me that when the Second loop happens for the $i loop it doesn't have anything in the $Managedby[0][0] variable.

Is there something missing that's needed for nesting For loops?

Share this post


Link to post
Share on other sites
AutoBert

The 2. loop is currently starting in groups with no managers. So you have to change like this:

#include <AD.au3>
#include <Array.au3>

;~ GUI INCLUDES
#include <GuiEdit.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1_1 = GUICreate("Get Managers", 592, 516, -1, -1)
Global $Edit1 = GUICtrlCreateEdit("", 16, 112, 177, 361)
GUICtrlSetData(-1, "")
Global $Edit2 = GUICtrlCreateEdit("", 200, 112, 385, 177)
GUICtrlSetData(-1, "")
Global $Label1 = GUICtrlCreateLabel("GROUP NAMES", 16, 88, 135, 24)
GUICtrlSetFont(-1, 12, 800, 4, "MS Sans Serif")
Global $Label2 = GUICtrlCreateLabel("Group Name - Manager Names", 200, 88, 251, 24)
GUICtrlSetFont(-1, 12, 800, 4, "MS Sans Serif")
Global $Button1 = GUICtrlCreateButton("Get Managed By", 32, 52, 163, 31)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
Global $Button2 = GUICtrlCreateButton("Copy Automated", 456, 296, 99, 25)
Global $Button3 = GUICtrlCreateButton("CLEAR ALL", 440, 24, 83, 25)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
Global $Label3 = GUICtrlCreateLabel("Created by - Clint Smith", 185, 480, 212, 24)
GUICtrlSetFont(-1, 12, 800, 0, "Century")
Global $Label4 = GUICtrlCreateLabel("Enter group names with no leading spaces", 16, 8, 244, 17)
GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
Global $Label5 = GUICtrlCreateLabel("Each Group name should be on its own line", 16, 32, 250, 17)
GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
Global $Edit4 = GUICtrlCreateEdit("", 200, 328, 385, 145)
GUICtrlSetData(-1, "")
Global $Label8 = GUICtrlCreateLabel("Automated Groups", 200, 304, 156, 24)
GUICtrlSetFont(-1, 12, 800, 4, "MS Sans Serif")
Global $Button4 = GUICtrlCreateButton("Copy All Output", 464, 80, 99, 25)
Global $Label9 = GUICtrlCreateLabel("This will Clear all boxes", 328, 32, 112, 17)
Global $Label6 = GUICtrlCreateLabel("Input", 160, 88, 28, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            GetManBy()
        Case $Button3

    EndSwitch
WEnd

Func GetManBy()
    Local $dispname[0]
    Local $groupnames = StringSplit(GUICtrlRead($Edit1), @CR)
    _ArrayDisplay($groupnames)
    _AD_Open()
    If @error Then Exit MsgBox(16, "Active Directory", "Function _AD_Open encountered a problem. @error = " & @error & ", @extended = " & @extended)

    For $i = 1 To $groupnames[0]

        $GRPname = _AD_GetObjectProperties($groupnames[$i], "displayname")
        If $GRPname = @error Then Return MsgBox(16, "Group Not Found", $groupnames[$i] & " was not found")
        $info = _AD_GetObjectProperties($groupnames[$i], "info")
        Global $Managedby = _AD_GetObjectProperties($groupnames[$i], "managedBy,msExchCoManagedByLink")
        If $Managedby = @error Then
            MsgBox(1, "No Manager for group", $groupnames[$i] & " - Has no managers")
            ;EndIf              ;deleted by autoBert
        Else ;inserted by autoBert
            _ArrayDisplay($Managedby)


            ConsoleWrite('$Managedby[0][0]=' & $Managedby[0][0] & @CRLF)
            For $f = 1 To $Managedby[0][0]
                ConsoleWrite($f & ': ' & $Managedby[$f][1] & @CRLF)
                _ArrayDisplay($Managedby)
;~          Here is the problem below.
                $add = _AD_FQDNToDisplayname($Managedby[$f][1])
                ConsoleWrite($add & @TAB & @error & ' ' & @extended)
                _ArrayAdd($dispname, $add); the column is only in 2D necesarry: , 0)
            Next
        EndIf ;inserted by autoBert may be must be moved befor 91) Next
        $Managers = _ArrayToString($dispname, ",")
        $str = StringInStr($info[1][1], "automated")
        If $str = 0 Then
            GUICtrlSetData($Edit2, $GRPname & " - " & $Managers & @CRLF)
        ElseIf $str > 0 Then
            GUICtrlSetData($Edit4, $GRPname & " - Automated Group" & @CRLF)
        EndIf
    Next
    _AD_Close()
EndFunc   ;==>GetManBy

 

Share this post


Link to post
Share on other sites
Quantumation

Thank you for your quick replies @AutoBert

Unfortunately that code still produces the same error.

--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
$Managedby[0][0]=4
1: CN=Clint Smith,OU=Service Desk
Clint Smith    0  02: CN=Tony Alzola,OU=Service Desk
Tony Alzola    0  03: CN=Ryan McIntosh,OU=Service Desk,
Ryan McIntosh    0  04: CN=Kody Courter,OU=Service Desk
Kody Courter    0  0"C:\Users\casmith\Documents\Autoit Scripts\GetManAndCoMan.au3" (73) : ==> Subscript used on non-accessible variable.:
ConsoleWrite('$Managedby[0][0]=' & $Managedby[0][0] & @CRLF)
ConsoleWrite('$Managedby[0][0]=' & $Managedby^ ERROR
->04:45:06 AutoIt3.exe ended.rc:1
+>04:45:06 AutoIt3Wrapper Finished.
>Exit code: 1    Time: 4.911

 

It's as though the 2nd loop just wants to keep going even after it's met its threshold. It hits 4 but then it does one more and I can't figure out why.

i've tested the second loop in a different script all by itself and it works just fine.

#include <AD.au3>
#include <Array.au3>
_AD_Open()
Global $Managedby = _AD_GetObjectProperties("TESTGROUP1", "managedBy,msExchCoManagedByLink")
    Global $dispname[0]
    For $f = 1 To $Managedby[0][0]
        $add = _AD_FQDNToDisplayname($Managedby[$f][1])
        _ArrayAdd($dispname, $add, 0)
        $strarray = _ArrayToString($dispname, ",")
    Next
    $strarray = _ArrayToString($dispname, ",")
_AD_Close()
;~This works like a charm

 

This one is really baffling.

 

Share this post


Link to post
Share on other sites
Quantumation
#include <AD.au3>
#include <Array.au3>

;~ GUI INCLUDES
#include <GuiEdit.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1_1 = GUICreate("Get Managers", 592, 516, -1, -1)
Global $Edit1 = GUICtrlCreateEdit("", 16, 112, 177, 361)
GUICtrlSetData(-1, "")
Global $Edit2 = GUICtrlCreateEdit("", 200, 112, 385, 177)
GUICtrlSetData(-1, "")
Global $Label1 = GUICtrlCreateLabel("GROUP NAMES", 16, 88, 135, 24)
GUICtrlSetFont(-1, 12, 800, 4, "MS Sans Serif")
Global $Label2 = GUICtrlCreateLabel("Group Name - Manager Names", 200, 88, 251, 24)
GUICtrlSetFont(-1, 12, 800, 4, "MS Sans Serif")
Global $Button1 = GUICtrlCreateButton("Get Managed By", 32, 52, 163, 31)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
Global $Button2 = GUICtrlCreateButton("Copy Automated", 456, 296, 99, 25)
Global $Button3 = GUICtrlCreateButton("CLEAR ALL", 440, 24, 83, 25)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
Global $Label3 = GUICtrlCreateLabel("Created by - Clint Smith", 185, 480, 212, 24)
GUICtrlSetFont(-1, 12, 800, 0, "Century")
Global $Label4 = GUICtrlCreateLabel("Enter group names with no leading spaces", 16, 8, 244, 17)
GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
Global $Label5 = GUICtrlCreateLabel("Each Group name should be on its own line", 16, 32, 250, 17)
GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
Global $Edit4 = GUICtrlCreateEdit("", 200, 328, 385, 145)
GUICtrlSetData(-1, "")
Global $Label8 = GUICtrlCreateLabel("Automated Groups", 200, 304, 156, 24)
GUICtrlSetFont(-1, 12, 800, 4, "MS Sans Serif")
Global $Button4 = GUICtrlCreateButton("Copy All Output", 464, 80, 99, 25)
Global $Label9 = GUICtrlCreateLabel("This will Clear all boxes", 328, 32, 112, 17)
Global $Label6 = GUICtrlCreateLabel("Input", 160, 88, 28, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            GetManBy()
        Case $Button3

    EndSwitch
WEnd

Func GetManBy()
    _AD_Open()
    Local $dispname[0]
    Local $groupnames = StringSplit(GUICtrlRead($Edit1), @CR)
;~  _ArrayDisplay($groupnames)

    If @error Then Exit MsgBox(16, "Active Directory", "Function _AD_Open encountered a problem. @error = " & @error & ", @extended = " & @extended)

    For $i = 1 To $groupnames[0]

        $GRPname = _AD_GetObjectProperties($groupnames[$i], "displayname")
        If $GRPname = @error Then Return MsgBox(16, "Group Not Found", $groupnames[$i] & " was not found")
        $info = _AD_GetObjectProperties($groupnames[$i], "info")
        Global $Managedby = _AD_GetObjectProperties($groupnames[$i], "managedBy,msExchCoManagedByLink")
        If $Managedby = @error Then
            MsgBox(1, "No Manager for group", $groupnames[$i] & " - Has no managers")
;~      EndIf
        Else
;~      _ArrayDisplay($Managedby)
            ConsoleWrite('$Managedby[0][0]=' & $Managedby[0][0] & @CRLF)
            For $f = 1 To $Managedby[0][0]
                ConsoleWrite($f & ': ' & $Managedby[$f][1] & @CRLF)
                _ArrayDisplay($Managedby)
;~          Here is the problem below.
                $add = _AD_FQDNToDisplayname($Managedby[$f][1])
                ConsoleWrite($add & @TAB & @error & '||' & @extended)
                _ArrayAdd($dispname, $add)
            Next
        EndIf
        $Managers = _ArrayToString($dispname, ",")
        $str = StringInStr($info[1][1], "automated")
        If $str = 0 Then
            GUICtrlSetData($Edit2, $GRPname & " - " & $Managers & @CRLF)
        ElseIf $str > 0 Then
            GUICtrlSetData($Edit4, $GRPname & " - Automated Group" & @CRLF)
        EndIf
    Next
    _AD_Close()
EndFunc   ;==>GetManBy

Just for reference here is the code i used with the last error I posted.

Share this post


Link to post
Share on other sites
AutoBert

Sorry, i was a little bit to quick. Changine line 68 to

If @error Then

should solve the problem. I have no AD so i can not test it myself.

Share this post


Link to post
Share on other sites
Quantumation

That got me past that error. But I'm so curious...........How?

Why would that make such a difference?

Share this post


Link to post
Share on other sites
Jfish

I don't know this specific function for AD but it is probably because if there is no manager only the first value of the array 0 is created to show 0 results.  Then your loop tries to access 1 as in "for 1 to ..." and there is no element in the array at that position so it throws the error.  If wondering why the specific change made a difference then I think it is because the array did not have a value of @error.  Instead, I think the @error flag was set.  

Edited by Jfish

Build your own poker game with AutoIt: pokerlogic.au3 | Learn To Program Using FREE Tools with AutoIt

Share this post


Link to post
Share on other sites
AutoBert

I have no Ad so i don't know the returned value of _AD_GetObjectProperties. But fact is $Managedby is no Array in case no managers found. And usualy when a function don't give the ecpected result @error and @extended are used to show show the error occured. 

The other way for you to solve is to test if returned variable type is the excpeted:

If Not IsArray($Managedby) Then
            MsgBox(1, "No Manager for group", $groupnames[$i] & " - Has no managers")
;~      EndIf
        Else
;~      _ArrayDisplay($Managedby)
            ConsoleWrite('$Managedby[0][0]=' & $Managedby[0][0] & @CRLF)
;.....

Your try for errorchecking:

If $Managedby = @error Then

only works if _AD_GetObjectProperties sets in case of an error return value of >=1 instead of a array.

As i saw you are using same (not working) method for errorchecking in line 65:

If $GRPname = @error Then Return MsgBox(16, "Group Not Found", $groupnames[$i] & " was not found")

you have to change it here also, may be in future a group with no displayname throw a error without (correct) handled.

In line 66 you use _AD_GetObjectProperties without any errorhandling, this may cause also future problems.

Edited by AutoBert

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

  • Similar Content

    • lattey
      By lattey
      hi,
      i have checkboxes and each checkbox that checked, i put in array. 
      now, im stuck on how to loop the checked array and store in in one variable. what i can do now, is only write the result into a text file. 
      below is the code:
      #include <GUIConstantsEx.au3> ;~ #include <MsgBoxConstants.au3> #include <ButtonConstants.au3> #include <Array.au3> Global $Count = 3 Global $CheckBoxP[$Count] Global $step[$Count] global $array1[1] Global $ExitResult $hGUI = GUICreate("Summary Steps", 500, 400) GUISetFont(12, 400, "Tahoma") GUICtrlCreateLabel( "Please Select the Summary Steps for Script Check", 70, 20) GUISetFont(10, 400, "Tahoma") Global $array_Pstep[3] = ["fix2","fix1","fix3"] global $step[3] = ["2","3","4"] $Spacing = 50 For $i = 0 To UBound($array_Pstep) - 1 $CheckBoxP[$i] = GUICtrlCreateCheckbox($array_Pstep[$i], 80, $Spacing + (20 * $i), 65, 17) Next $submit = GUICtrlCreateButton("Submit",180, 280, 80, 30) $exit = GUICtrlCreateButton("Exit",180, 320, 80, 30) GUISetState() While 1 $Msg = GUIGetMsg() Select case $Msg=$submit For $i = 0 To $Count - 1 If GUICtrlRead($CheckBoxP[$i]) = $GUI_CHECKED Then _ArrayAdd($array1, $step[$i]) EndIf Next Global $logfilerray = @WorkingDir & "\checkedlist.txt" FileDelete ($logfilerray) Global $readlogfile = FileOpen($logfilerray,1) for $a = 1 to UBound($array1) - 1 ;~ $var=$array1[$a] FileWriteLine($readlogfile,$array1[$a]) Next FileClose($readlogfile) Exit case $Msg=$exit $ExitResult = MsgBox(1,"Summary Step", "Continue to Exit ?") if $ExitResult = 1 Then ;ok Exit EndIf Exit EndSelect WEnd  
    • omicron
      By omicron
      How do you perform a nested loop function with a multidimensional array from 2 lists.
      for i in list1
      (open file) extract variable
          while open for i in list 2
          (open file2) extract variable
       
      var1 + var2 = (search term)

      The list sizes will more than likely consist of different lengths.
       
      What is the best approach to accomplishing this method?
             
    • omicron
      By omicron
      Hello!

      I am working on a function that I am just getting lost on. The goal is a multiple nested loop.

      Here are the steps:
      Contents of file1.txt::
      [topic] var1=Name var2=OtherName var3=SomeotheName Contents of file2.txt::
      [subTopic] top=sub1 top2=sub2 top3=sub3 The Shell I am working from::
      #include <file.au3> $file = "c:\yourfile.txt" FileOpen($file, 0) For $i = 1 to _FileCountLines($file) $line = FileReadLine($file, $i) msgbox(0,'','the line ' & $i & ' is ' & $line) Next FileClose($file) Understanding however that the "msgbox" needs to then become a variable. in example the following::
      $file = "c:\yourfile.txt" FileOpen($file, 0) While true( prog.exe is running && "WinName" is open) do For $i = 1 to _FileCountLines($file) $line = FileReadLine($file, $i) ;Open File to log "current location of file 1" FileWriteLine ("filename", $i & ' is ' & $line) var = $line Next $file2 = "c:\yourfile.txt" FileOpen($file, 0) For $i = 1 to _FileCountLines($file) $line = FileReadLine($file, $i) ; OpenFile to log "Current location of file 2" FileWriteLine ("filename", $i & ' is ' & $line) Next FileClose($file2) FileClose($file) The goal in written form is the following ::

      While in "OpenWindow"
          read from file 1 starting at line 1 until end of file.
         file 1 is a list of names to be searched.
         With $line selected, add this element to the element in file 2.
       
      The search of a variables in list 1 and list 2 differ on the amount of posts that day. (This is not a web based platform, it is a game) I need to search 2 names and take a screenshot of the out put. The sizes of the names list depend on the activity of names at the time of search.
      This loop continues until all the names from both lists have been searched. Mostly in the format of::
      File1= item
      File2= Vendor
       
      Item + Vendor  ( Capture screen, scroll) -- Not sure how to detect if I need to scroll)
       
      Thank you for your help and support!
    • Jackized
      By Jackized
      Is there a way to loop back to the beginning and keep the already entered data in the GUI Input boxes? I can GUIDelete and start a new GUI but all the typed data has to be redone. Here is a sample.

       
      #Include <GuiConstants.au3> Dim $msg,$okbutton,$cancelbutton,$objOU,$intAccValue,$strGroup1,$strGroup2 Dim $strFirstName,$strLastName,$strUserName,$strUserName2,$strPassword,$strDescription,$strContainer Dim $Combo,$Duration Do $Form1 = GuiCreate("", 300, 300)          GUISetBkColor(0xA6CAF0)         GuiCtrlCreateLabel("First Name:", 50, 10)         $strFirstName = GuiCtrlCreateInput("", 50, 25, 200, 20)         GUICtrlSetState ( $okbutton, $GUI_FOCUS )         GuiSetState()     $okbutton = GUICtrlCreateButton ("OK",75,240,50,20)     $cancelbutton = GUICtrlCreateButton ("Cancel",175,240,50,20) While 1     $msg = GUIGetMsg()     Select     Case $msg = $GUI_EVENT_CLOSE Or $msg = $cancelbutton             Exit     Case $msg = $okbutton             $strFirstName = GUICtrlRead($strFirstName)             ExitLoop     EndSelect Wend $len = StringLen($strFirstName)     If $len > "20" then         MsgBox(0, "ERROR Name to long", $strFirstName & " can't be over 20 characters." & @CRLF & "Total: " & $len)         ;Exit         GUIDelete($Form1)     EndIf Until $len < "20" MsgBox(0, "Done", "")  
×