Help: List index out of bounds (-1)
Moderators: Dorian (MJT support), JRL
Help: List index out of bounds (-1)
I have made a rather simple login script
which I want to run by the its .exe file.
However there seems to be a conflict when Macro Scheduler is runnning as I often get the above error message.
I have tried to make many changes in the macro to avoid this.
Observations:
As this error does not occur for other macros I think that the use of
Press Down
in the macro to scroll down and reach the input control causes the error in this case.
If Macro Scheduler is hidden or closed this error seems to not appear.
1. What does cause this conflict?
2. What does this error really mean?
3. How do I avoid this bug/error when I want to use this macro and Macro Scheduler at the same time? Also with scheduled macros.
Thanks
which I want to run by the its .exe file.
However there seems to be a conflict when Macro Scheduler is runnning as I often get the above error message.
I have tried to make many changes in the macro to avoid this.
Observations:
As this error does not occur for other macros I think that the use of
Press Down
in the macro to scroll down and reach the input control causes the error in this case.
If Macro Scheduler is hidden or closed this error seems to not appear.
1. What does cause this conflict?
2. What does this error really mean?
3. How do I avoid this bug/error when I want to use this macro and Macro Scheduler at the same time? Also with scheduled macros.
Thanks
- Marcus Tettmar
- Site Admin
- Posts: 7395
- Joined: Thu Sep 19, 2002 3:00 pm
- Location: Dorset, UK
- Contact:
Help us help you. Show us your script. Which version are you running?
Marcus Tettmar
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
_____________________________________________________________
Remark>Login to Nordnet
Let>YES=1
Let>NO=0
Let>address1=https://www.nordnet.se/mux/login/startSE.html
Let>address2=https://www.nordnet.se/mux/web/depa/minsida.html
Let>address3=https://www.nordnet.se/mux/login/startSE.html#
/*May be a solution
Remark>Hide MacroScheduler
IfWindowOpen>Macro Scheduler*
SetFocus>Macro Scheduler*
Press CTRL
Press F4
Release CTRL
EndIf
*/
IfWindowOpen>di.se - Windows Internet Explorer
CloseWindow>di.se - Windows Internet Explorer
WaitWindowClosed>di.se - Windows Internet Explorer
EndIf
Let>NoWindow=NO
Let>k=1
Repeat>NoWindow
Let>k=k+1
IfWindowOpen>Nordnet*
CloseWindow>Nordnet*
Let>WW_TIMEOUT=10
WaitWindowClosed>Nordnet*
If>k>10
Let>NoWindow=YES
EndIf
Else
Let>NoWindow=YES
EndIf
Until>NoWindow=YES
CapsOff
Remark> Use the IEAuto here
LibLoad>IEAuto.dll,hIE
If>hIE=0
MessageModal>Could not load IEAuto.dll, make sure it is in the path or edit the LibLoad line.
Goto>Endscript
EndIf
Remark>Open the nordnet page
LibFunc>hIE,CreateIE,IE,0
LibFunc>hIE,Navigate,r,%IE%,%address1%
LibFunc>hIE,WaitIE,r,%IE%
Wait>1
WaitWindowOpen>Nordnet - Välkommen - Windows Internet Explorer
WindowAction>1,Nordnet - Välkommen - Windows Internet Explorer
Remark>Give login data
Wait>0.5
SetFocus>Nordnet - Välkommen - Windows Internet Explorer
MouseMove>150,150
LClick
Remark>We use image recognition to find the first input field
Remark>First we have to scroll down
WaitReady>0
Press DOWN
Press DOWN
GetScreenRes>X,Y
ScreenCapture>0,0,X,Y,D:\MacroData\Sites\screen.bmp
FindImagePos>D:\MacroData\Sites\inputfield.bmp,D:\MacroData\Sites\screen.bmp,0,1,X,Y,NumFound
If>NumFound>0
MouseMove>X_0,Y_0
Else
MessageModal>Error: No input field found, %SCREENCAP_RESULT%
Goto>EndScript
EndIf
LClick
SetFocus>Nordnet - Välkommen - Windows Internet Explorer
WaitReady>0
Send>11111
Wait>0.1
WaitReady>0
Press TAB
Send>xxxxx
Wait>0.1
WaitReady>0
Press TAB
Send>yyyyyyy
Wait>0.2
Remark>Move to the login button and click it
SetFocus>Nordnet - Välkommen - Windows Internet Explorer
Remark>Use IEAuto in Webrecorder and index which is found to be 4 in this case
Let>FrameName={""}
Let>FormName={""}
Let>TagValue={"4"}
LibFunc>hIE,ClickTag,r,%IE%,str:FrameName,str:FormName,A,INDEX,str:TagValue
Wait>1
WaitWindowOpen>Nordnet - Startsida - Windows Internet Explorer
Label>EndScript
Exit
**********************************************************************
SRT>MinimizeAllWindows
Press LWinkey
Send>d
Release LWinkey
END>MinimizeAllWindows
SRT>MaximizeAllWindows
Press LWinkey
Press Shift
Send>m
Release Shift
Release LWinkey
END>MaximizeAllWindows
_______________________________________________________
One test variant of the code is above.
You could ignore the closing of windows at the beginning
I think that you will get the error if you have the MS open and run this as an exe at the same time - but I am not quite sure.
I use version 9.0
If you have any other comments to my code, I would appreciate.
I am an experienced programmer but new to MS.
This macro worked well before I had to add the Press Down after home page changes.
Thanks
[/code]
Remark>Login to Nordnet
Let>YES=1
Let>NO=0
Let>address1=https://www.nordnet.se/mux/login/startSE.html
Let>address2=https://www.nordnet.se/mux/web/depa/minsida.html
Let>address3=https://www.nordnet.se/mux/login/startSE.html#
/*May be a solution
Remark>Hide MacroScheduler
IfWindowOpen>Macro Scheduler*
SetFocus>Macro Scheduler*
Press CTRL
Press F4
Release CTRL
EndIf
*/
IfWindowOpen>di.se - Windows Internet Explorer
CloseWindow>di.se - Windows Internet Explorer
WaitWindowClosed>di.se - Windows Internet Explorer
EndIf
Let>NoWindow=NO
Let>k=1
Repeat>NoWindow
Let>k=k+1
IfWindowOpen>Nordnet*
CloseWindow>Nordnet*
Let>WW_TIMEOUT=10
WaitWindowClosed>Nordnet*
If>k>10
Let>NoWindow=YES
EndIf
Else
Let>NoWindow=YES
EndIf
Until>NoWindow=YES
CapsOff
Remark> Use the IEAuto here
LibLoad>IEAuto.dll,hIE
If>hIE=0
MessageModal>Could not load IEAuto.dll, make sure it is in the path or edit the LibLoad line.
Goto>Endscript
EndIf
Remark>Open the nordnet page
LibFunc>hIE,CreateIE,IE,0
LibFunc>hIE,Navigate,r,%IE%,%address1%
LibFunc>hIE,WaitIE,r,%IE%
Wait>1
WaitWindowOpen>Nordnet - Välkommen - Windows Internet Explorer
WindowAction>1,Nordnet - Välkommen - Windows Internet Explorer
Remark>Give login data
Wait>0.5
SetFocus>Nordnet - Välkommen - Windows Internet Explorer
MouseMove>150,150
LClick
Remark>We use image recognition to find the first input field
Remark>First we have to scroll down
WaitReady>0
Press DOWN
Press DOWN
GetScreenRes>X,Y
ScreenCapture>0,0,X,Y,D:\MacroData\Sites\screen.bmp
FindImagePos>D:\MacroData\Sites\inputfield.bmp,D:\MacroData\Sites\screen.bmp,0,1,X,Y,NumFound
If>NumFound>0
MouseMove>X_0,Y_0
Else
MessageModal>Error: No input field found, %SCREENCAP_RESULT%
Goto>EndScript
EndIf
LClick
SetFocus>Nordnet - Välkommen - Windows Internet Explorer
WaitReady>0
Send>11111
Wait>0.1
WaitReady>0
Press TAB
Send>xxxxx
Wait>0.1
WaitReady>0
Press TAB
Send>yyyyyyy
Wait>0.2
Remark>Move to the login button and click it
SetFocus>Nordnet - Välkommen - Windows Internet Explorer
Remark>Use IEAuto in Webrecorder and index which is found to be 4 in this case
Let>FrameName={""}
Let>FormName={""}
Let>TagValue={"4"}
LibFunc>hIE,ClickTag,r,%IE%,str:FrameName,str:FormName,A,INDEX,str:TagValue
Wait>1
WaitWindowOpen>Nordnet - Startsida - Windows Internet Explorer
Label>EndScript
Exit
**********************************************************************
SRT>MinimizeAllWindows
Press LWinkey
Send>d
Release LWinkey
END>MinimizeAllWindows
SRT>MaximizeAllWindows
Press LWinkey
Press Shift
Send>m
Release Shift
Release LWinkey
END>MaximizeAllWindows
_______________________________________________________
One test variant of the code is above.
You could ignore the closing of windows at the beginning
I think that you will get the error if you have the MS open and run this as an exe at the same time - but I am not quite sure.
I use version 9.0
If you have any other comments to my code, I would appreciate.
I am an experienced programmer but new to MS.
This macro worked well before I had to add the Press Down after home page changes.
Thanks
[/code]
- Marcus Tettmar
- Site Admin
- Posts: 7395
- Joined: Thu Sep 19, 2002 3:00 pm
- Location: Dorset, UK
- Contact:
Can you clarify something for me - when the Press Down is issued which window has the focus? Are you sure that the correct window is focused? I am wondering if the problem might be that Macro Scheduler still has the focus at this point and want to eliminate that possibility. The reason I ask is that you say the error only occurs when Macro Scheduler is visible. So leading me to wonder if it still has the focus when you send the keystroke.
Are you also positive that the Press Down command is the culprit? Do you have log files or have you debugged in order to prove this?
Are you also positive that the Press Down command is the culprit? Do you have log files or have you debugged in order to prove this?
Marcus Tettmar
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
As you see I use the SetFocus command, which should set the focus to the correct window. Does not the SetFocus command work when the MS is open?
However the error message seems to come from Macro Scheduler.
I am not quite sure if the Press Down is the culprit but think so.
My conclusions are not firm at this point, therefore I have posted this message.
Also it is not quite certain that the error only appears when MS is visible.
I have not fully tested the variant where I hide MS.
I could send you the image file for testing if you send me your email address.
The log files have so far given me nothing. They show that the macro has been running to the end (START/END for each line of code). How should I use them?
Thanks
However the error message seems to come from Macro Scheduler.
I am not quite sure if the Press Down is the culprit but think so.
My conclusions are not firm at this point, therefore I have posted this message.
Also it is not quite certain that the error only appears when MS is visible.
I have not fully tested the variant where I hide MS.
I could send you the image file for testing if you send me your email address.
The log files have so far given me nothing. They show that the macro has been running to the end (START/END for each line of code). How should I use them?
Thanks
- Marcus Tettmar
- Site Admin
- Posts: 7395
- Joined: Thu Sep 19, 2002 3:00 pm
- Location: Dorset, UK
- Contact:
Yes, of course SetFocus works when Macro Scheduler is open. I just wanted to get your clarification that you are focusing a window and that the window IS being focused correctly.
As you are not entirely sure which command is the culprit please enable logging for the macro. Then next time you get the error message, BEFORE clearing the error message, grab a copy of the log file from disk and look at the last entry.
Which version of Macro Scheduler are you using? I need the full version number. Look under Help/About.
As you are not entirely sure which command is the culprit please enable logging for the macro. Then next time you get the error message, BEFORE clearing the error message, grab a copy of the log file from disk and look at the last entry.
Which version of Macro Scheduler are you using? I need the full version number. Look under Help/About.
Marcus Tettmar
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
I will check the log file as you say and come back.
The full version no is 9.0.052.
Could you pls tell me your experience of this error message and what it stands for?
When I do not get this error the macro is working quite well. Before this change (Press Down) due to a home page update recently, the macro was working without any problem for about a month.
Thanks
The full version no is 9.0.052.
Could you pls tell me your experience of this error message and what it stands for?
When I do not get this error the macro is working quite well. Before this change (Press Down) due to a home page update recently, the macro was working without any problem for about a month.
Thanks
I was wrong.
When this error occurs the logfile stops at
CloseWindow>Nordnet*.
The error message is shown on the MS window and there is a sound
It seems that MS in this case is not able to close the window, even if there is a window of this kind open.
I cannot determine the circumstances when these error messages appear - (there is a loop over k - why I now have changed some constants in it). Sometimes there is no error.
Thanks for a reply
When this error occurs the logfile stops at
CloseWindow>Nordnet*.
The error message is shown on the MS window and there is a sound
It seems that MS in this case is not able to close the window, even if there is a window of this kind open.
I cannot determine the circumstances when these error messages appear - (there is a loop over k - why I now have changed some constants in it). Sometimes there is no error.
Thanks for a reply
Looking up the error "List index out of bounds (-1)" in Google groups, it seems that it is a Delphi error that possibly occurs when a variable is not initialized. Based on this probably useless information and considering the script location where your logfile halts, I wonder why you are setting YES to 1 and NO to 0 in the opening lines of your code. The point of failure might indicate that there is a problem with the repeat statement that is using YES and NO for it's parameters. What happens if you eliminate the two lines?
//Let>YES=1
//Let>NO=0
Just a thought.
//Let>YES=1
//Let>NO=0
Just a thought.
I will test your proposal even if I do not believe in it.
I will tell you if this gives something.
The error that comes irregularly is quite disturbing.
I am grateful for all help
I generally use YES or NO in my code because I am used to it and it creates some clarity. I have it in several macros without this error.
My conclusion is that the error comes with the closewindow statement even if there is a window to close and that is given by the MS not my macro. I will now also test removing the loop but think that this will not help as the error comes for each k.
The error message has obviously been up for discussion in this forum several times before. You may search for it here. I did not find any useful hints but thought that someone from mjtnet could help.
Thanks
I will tell you if this gives something.
The error that comes irregularly is quite disturbing.
I am grateful for all help
I generally use YES or NO in my code because I am used to it and it creates some clarity. I have it in several macros without this error.
My conclusion is that the error comes with the closewindow statement even if there is a window to close and that is given by the MS not my macro. I will now also test removing the loop but think that this will not help as the error comes for each k.
The error message has obviously been up for discussion in this forum several times before. You may search for it here. I did not find any useful hints but thought that someone from mjtnet could help.
Thanks
- Marcus Tettmar
- Site Admin
- Posts: 7395
- Joined: Thu Sep 19, 2002 3:00 pm
- Location: Dorset, UK
- Contact:
Some apps will ignore a request from the CloseWindow command. Not sure if the problem is related. But please try this code instead:
SetFocus>Nordnet*
Press ALT
Press F4
Release ALT
SetFocus>Nordnet*
Press ALT
Press F4
Release ALT
Marcus Tettmar
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
http://mjtnet.com/blog/ | http://twitter.com/marcustettmar
Did you know we are now offering affordable monthly subscriptions for Macro Scheduler Standard?
I have used this script for some months without any problems.
However since the owner of this homepage changed it CloseWindow sometimes did not work and gave the described error message.
That is my conclusion, which Marcus Tettmar has said could be possible.
I have changed to use ALT F4 which has worked without errors for a few days now. The check of k has been removed.
However today the owner changed the homepage once more. I have not checked if CloseWindow may give an error again. I will keep F4 and report if something new will happen.
Thank you for your friendly support.
Maybe this case could initiate an improvement of the CloseWindow function in the future.
However since the owner of this homepage changed it CloseWindow sometimes did not work and gave the described error message.
That is my conclusion, which Marcus Tettmar has said could be possible.
I have changed to use ALT F4 which has worked without errors for a few days now. The check of k has been removed.
However today the owner changed the homepage once more. I have not checked if CloseWindow may give an error again. I will keep F4 and report if something new will happen.
Thank you for your friendly support.
Maybe this case could initiate an improvement of the CloseWindow function in the future.