Zabaware Support Forums

Zabaware Forums => Programming using the Ultra Hal Brain Editor => Topic started by: jasondude7116 on October 31, 2009, 01:10:06 am

Title: VBscript help
Post by: jasondude7116 on October 31, 2009, 01:10:06 am
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.
Title: VBscript help
Post by: snowman on October 31, 2009, 03:17:38 am
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.
Title: VBscript help
Post by: jasondude7116 on October 31, 2009, 04:45:00 pm
thanks for the reply.
can't wait to see your "finished" product. i know it will kick a**!
-the dude
Title: VBscript help
Post by: DarcyEdwards on November 02, 2009, 12:39:05 am
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

Title: VBscript help
Post by: jasondude7116 on November 02, 2009, 10:16:40 pm
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]
Title: VBscript help
Post by: DarcyEdwards on November 03, 2009, 02:05:54 am
You are very welcome[:I]