注册 登录
编程论坛 VB6论坛

tang688大大来救命``如何通过点击按钮在webbrowser中依次5秒打开list1中的N个网址?

anluboy 发布于 2012-09-03 19:04, 896 次点击
如何通过点击按钮在webbrowser中依次5秒打开list1中的N个网址?
谢谢大家了。。。小弟不才``

[ 本帖最后由 anluboy 于 2012-9-3 21:58 编辑 ]
10 回复
#2
风吹过b2012-09-03 22:59
超时设置。5分钟。

1、定时器,1秒一次。有一个 全局变量负责倒计时,每秒减1.
2、窗体上放 webbrowser 和 list
3、从 list 中取一个网址,用 webbrowser 打开。倒计时设为 300 。同时从 list 中去掉该网址。
4、当 webbrowser 载入整个网页完成时(有事件)。设置倒计时为 5 。网页打开后继续 保持 5秒钟,不建议小于3秒。
5、定时器,倒计时为0时,重复第3 步的步骤。

-------分析---------
使用定时器调度:
1、当该网页未能打开,5分钟后继续打开另一网址,不会造成系统死锁。
2、可以在每一秒时都判断一下程序的状态,不容易因等待事件而导致程序无法继续。
3、核心是定时器调度,那第三步,就可以简化为,设置倒计时为0 ,导致触发 定时器里,倒计时为0时,去取网址打开的功能。

-----------------------------------------------
点广告用???

[ 本帖最后由 风吹过b 于 2012-9-3 23:03 编辑 ]
#3
anluboy2012-09-04 08:57
回复 2楼 风吹过b
谢谢大大````我试试。。。
#4
anluboy2012-09-04 09:32
回复 2楼 风吹过b
Private Sub Timer1_Timer()
    If i >= List1.ListCount Then i = 0
    WebBrowser2.Navigate List1.List(i)
    i = i + 1
End Sub

Private Sub Command3_Click()
Timer1.Enabled = True
End Sub
我这样写的。。。只能不停的打开一个页面``
#5
anluboy2012-09-04 10:09
回复 2楼 风吹过b
Private Sub Command3_Click()
  Dim b As Integer
For b = 0 To 20 Step 1
isok = False
WebBrowser2.Navigate List1.List(b)
Do While isok = False
   DoEvents
Loop
Next b
End Sub
换了个方式```只可以打开2个页面。
#6
风吹过b2012-09-04 15:51
Private Sub Timer1_Timer()

Dim i As Integer

Form1.Caption = js   '提示倒计时
If js > 0 Then
    js = js - 1      '倒计时
End If

If Check1.Value > 0 Then
    If js = 0 Then           '倒计时=0
        If List1.ListCount > 0 Then       '有列表
            i = Int(Rnd() * List1.ListCount)        '产生随机位置
            WebBrowser1.Navigate List1.List(i)      '转到
            List1.RemoveItem i                      '去掉该网址
            js = 180                                '倒计时180秒
        Else
            WebBrowser1.Navigate 列表URL            '列表为空,转到列表
            js = 600                                '倒计时 600 秒
        End If

    End If
End If
end sub


在 网页载入完成事件中:
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    js = 3
end sub

--------------------
我是随机取地址,然后 没有网址时,每5分钟刷新一次。

[ 本帖最后由 风吹过b 于 2012-9-4 15:53 编辑 ]
#7
风吹过b2012-09-04 16:01
不能直接在 timer 事件中直接打开下一个地址,需要确保 前一个地址完全打开了才能继续打开下一个地址。
使用计数,当计数 = 0 时,才去打开地址,就是达到这个目的。
#8
anluboy2012-09-05 08:50
回复 7楼 风吹过b
太厉害了。。。貌似还解决了CPU占用过大的问题···
#9
anluboy2012-09-05 09:51
回复 7楼 风吹过b
求大大的QQ
#10
风吹过b2012-09-05 10:08
我3年没上QQ了。
#11
anluboy2012-09-05 15:03
回复 10楼 风吹过b
大大 我可以继续请教吗?
提交回复的问题···
1