Author Topic: VBscript help  (Read 5609 times)

jasondude7116

  • Sr. Member
  • ****
  • Posts: 475
    • View Profile
VBscript help
« 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.
« Last Edit: October 31, 2009, 02:28:36 am by jasondude7116 »
 

snowman

  • Hero Member
  • *****
  • Posts: 956
  • Ai + Feelings + Supercompter = End of World
    • View Profile
    • http://www.MinervaAi.com
VBscript help
« Reply #1 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.
Live long and prosper or die trying.

jasondude7116

  • Sr. Member
  • ****
  • Posts: 475
    • View Profile
VBscript help
« Reply #2 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
 

DarcyEdwards

  • Full Member
  • ***
  • Posts: 196
    • View Profile
VBscript help
« Reply #3 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

« Last Edit: November 02, 2009, 07:13:58 am by DarcyEdwards »
Hugs

-Darcy

MrsEdwards01@aol.com

jasondude7116

  • Sr. Member
  • ****
  • Posts: 475
    • View Profile
VBscript help
« Reply #4 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]
 

DarcyEdwards

  • Full Member
  • ***
  • Posts: 196
    • View Profile
VBscript help
« Reply #5 on: November 03, 2009, 02:05:54 am »
You are very welcome[:I]
Hugs

-Darcy

MrsEdwards01@aol.com