Zabaware Support Forums

VBscript help

Started by jasondude7116, October 31, 2009, 01:10:06 AM

Previous topic - Next topic

jasondude7116

does someone know this one?
what i have is this:



Set objExplorer = CreateObject("InternetExplorer.Application")
objExplorer.Navigate(NewsTopic)

Do Until objExplorer.ReadyState=4 : Loop

NewsText = objExplorer.Document.Body.innerText
objExplorer.Quit



I am wondering, if the loop condition is never met...infinite loop!
How do I exit the loop if "ReadyState" never equals 4?
There has to be an easy answer to this right?

If I did this instead:

Do While objExplorer.Busy Or (objExplorer.READYSTATE <> 4) : Loop

Would it not go infinite if internet explorer was locked up?


Thanks again.
 

snowman

Isn't that why they have timers on things like that.

The only thing that I can figure would be a really big 'For To loop'

I dont think Hal script supports a timer function like wscript.sleep.

We thought about running an outside timer in a an external vbscript but I know that your looking for something less extravagant.

Maybe I could add a timer function to the Dll I'm working on.

I don't know... just thinking. I'd like to see how this one is figured out myself.
Live long and prosper or die trying.

jasondude7116

thanks for the reply.
can't wait to see your "finished" product. i know it will kick a**!
-the dude
 

DarcyEdwards

#3
Hal has a minute timer, you could use it as an exit for your do while loop, set a var to zero before the do loop and increment it in the minute timer, if too many minutes go by you could exit the do loop.

Do While objExplorer.Busy Or (objExplorer.READYSTATE <> 4) : Loop

could be
'----------------------------------------
Rem PLUGIN: FUNCTIONS
'
'------------------
' Declare variables
'------------------
Dim exitVar
'----------------------------------------
' your code ........
'
exitVar = 0
do while objEeplorer.Busy or (objExplorer.READYSTATE <> 4) and (exitVar <> 5) : Loop

'-----------------------------------------
Rem PLUGIN: MINUTE_TIMER
'
' Passed MinutesPast
' Called every minute
exitVar = exitVar + 1
'------------------------------------------


exitVar will increment 1 each minute when it reaches 5 the do loop will exit.  This should solve your problem.

Good luck

Hugs

-Darcy

MrsEdwards01@aol.com

jasondude7116

thanks for the help darcy.
i was thinking about "timing" it out.
there is a lot i need to learn about in VB.
thanks again folks!
learning, learning, learning[:p]
 

DarcyEdwards

You are very welcome[:I]
Hugs

-Darcy

MrsEdwards01@aol.com