怎么来用vb定时循环运行

a2048 2008-11-25 03:23:36
只要程序运行就自动打开126.com网站,等过了5分钟后再自动打开163.com网站,等7分钟后再重新打开126.com,就这样循环,也就是说在在13分钟内要打开二个网站,第二个网站必须等7分钟后才能打开,循环操作。
下面是我的测试程序,但只能做到每5分钟就执行打开126.com,不能在打开126.com 后在等7分钟后打开163.com
Option Explicit

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Const TENMINUTE = 300

Private Sub Form_Load()

Timer1.Interval = 1000
Timer1 = True


End Sub

Private Sub Timer1_Timer()
Static lngCount As Long


If lngCount = TENMINUTE Then
prog

lngCount = 0


Else
lngCount = lngCount + 1

End If


End Sub

'执行程序段
Private Sub prog()


Shell "C:\Program Files\Mozilla Firefox\firefox.exe http://126.com", vbHide


End Sub

...全文
766 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
莫情莫钱 2008-11-26
  • 打赏
  • 举报
回复
楼上说的是,路过
aohan 2008-11-26
  • 打赏
  • 举报
回复
搞这种连续弹出窗体的事情,我不喜欢,和流氓软件没什么区别,不写代码
Tiger_Zhao 2008-11-26
  • 打赏
  • 举报
回复
我的程序本身只有一个 Timer,也没有新建任何对象,耗用资源很少。
你要考虑的是:不断通过命令行调用 firefox.exe,它会不会不断地开出新的窗口或标签页。
a2048 2008-11-25
  • 打赏
  • 举报
回复
Tiger_Zhao 和cs_oldhorse 我试过是可以的。
请问你们二位这样编译好之后长时间运行会很耗资源吗?因为我想把这个方法用到服务器上定时检测数据库。一般服务器2、3个月重起一次。
jhone99 2008-11-25
  • 打赏
  • 举报
回复
Option Explicit

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Const TENMINUTE = 5 '这里我故意用10秒
Const TENMINUTE1 = 7 '这里我故意用10秒


Private Sub Form_Load()

Timer1.Interval = 1000
Timer2.Interval = 1000
Timer1 = True
Timer2 = False


End Sub

Private Sub Timer1_Timer()
Static lngCount As Long

If lngCount = TENMINUTE Then '300秒,就是5分钟,这时候打开一次
prog
lngCount = 0
Timer1.Enabled = False
Timer2.Enabled = True Else
lngCount = lngCount + 1
End If


End Sub

'多加一个时间控件,在第一个打开之后,激活,开始7分钟倒计时
Private Sub Timer2_Timer()
Static lngCount As Long
If lngCount = TENMINUTE1 Then '300秒,就是5分钟,这时候打开一次
prog1
lngCount = 0
Timer2.Enabled = False
Timer1.Enabled = True
Else
lngCount = lngCount + 1
End If


End Sub


'执行程序段
Private Sub prog()
MsgBox "1"

Shell "C:\Program Files\Mozilla Firefox\firefox.exe http://126.com", vbHide


End Sub

'执行程序段
Private Sub prog1()
MsgBox "2"

Shell "C:\Program Files\Mozilla Firefox\firefox.exe http://163.com", vbHide


End Sub
jhone99 2008-11-25
  • 打赏
  • 举报
回复
Option Explicit

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Const TENMINUTE = 2 '这里我故意用10秒
Const TENMINUTE1 = 3 '这里我故意用10秒


Private Sub Form_Load()

Timer1.Interval = 1000
Timer2.Interval = 1000
Timer1 = True
Timer2 = False


End Sub

Private Sub Timer1_Timer()
Static lngCount As Long

If lngCount = TENMINUTE Then '300秒,就是5分钟,这时候打开一次
prog
lngCount = 0
Timer1.Enabled = False
Timer2.Enabled = True
Else
lngCount = lngCount + 1
End If


End Sub

'多加一个时间控件,在第一个打开之后,激活,开始7分钟倒计时
Private Sub Timer2_Timer()
Static lngCount As Long
If lngCount = TENMINUTE1 Then '300秒,就是5分钟,这时候打开一次
prog1
lngCount = 0
Timer2.Enabled = False
Timer1.Enabled = True
Else
lngCount = lngCount + 1
End If


End Sub


'执行程序段
Private Sub prog()
MsgBox "1"

Shell "C:\Program Files\Mozilla Firefox\firefox.exe http://126.com", vbHide


End Sub

'执行程序段
Private Sub prog1()
MsgBox "2"

Shell "C:\Program Files\Mozilla Firefox\firefox.exe http://163.com", vbHide


End Sub
Tiger_Zhao 2008-11-25
  • 打赏
  • 举报
回复
Option Explicit

Private Const TASK_COUNT As Long = 2
Private m_aTaskWaiting(TASK_COUNT - 1) As Long
Private m_aTaskUrl(TASK_COUNT - 1) As String

Private m_TaskID As Long
Private m_CountDown As Long

Private Sub Form_Load()
m_aTaskWaiting(0) = (5 * 60)
m_aTaskWaiting(1) = (7 * 60)
m_aTaskUrl(0) = "http://126.com"
m_aTaskUrl(1) = "http://163.com"

m_TaskID = 0
m_CountDown = m_aTaskWaiting(m_TaskID)

Timer1.Interval = 1000
Timer1 = True
End Sub

Private Sub Timer1_Timer()
m_CountDown = m_CountDown - 1
If m_CountDown <= 0 Then
Shell "C:\Program Files\Mozilla Firefox\firefox.exe " & m_aTaskUrl(m_TaskID), vbHide

m_TaskID = ((m_TaskID + 1) Mod TASK_COUNT)
m_CountDown = m_aTaskWaiting(m_TaskID)
End If
End Sub
cs_oldhorse 2008-11-25
  • 打赏
  • 举报
回复
我在下面试过了,可以实现的
a2048 2008-11-25
  • 打赏
  • 举报
回复
我这样好象一直定时打开第一个126.com,不能打开163.com

Option Explicit

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Const TENMINUTE = 5 '这里我故意用10秒
Const TENMINUTE1 = 10 '这里我故意用10秒


Private Sub Form_Load()

Timer1.Interval = 1000
Timer1 = True


End Sub

Private Sub Timer1_Timer()
Static lngCount As Long
If lngCount = TENMINUTE Then '300秒,就是5分钟,这时候打开一次
prog
lngCount = 0
Timer1.Enabled = False
Timer1.Enabled = True
Else
lngCount = lngCount + 1
End If


End Sub

'多加一个时间控件,在第一个打开之后,激活,开始7分钟倒计时
Private Sub Timer2_Timer()
Static lngCount As Long
If lngCount = TENMINUTE1 Then '300秒,就是5分钟,这时候打开一次
prog1
lngCount = 0
Timer2.Enabled = False
Timer1.Enabled = True
Else
lngCount = lngCount + 1
End If


End Sub



'执行程序段
Private Sub prog()


Shell "C:\Program Files\Mozilla Firefox\firefox.exe http://126.com", vbHide


End Sub

'执行程序段
Private Sub prog1()


Shell "C:\Program Files\Mozilla Firefox\firefox.exe http://163.com", vbHide


End Sub

cs_oldhorse 2008-11-25
  • 打赏
  • 举报
回复
用3个time控制最简单了
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Const INTERVEL1 = 300
Const INTERVEL2 = 420
Private mintTotMin As Long

Private Sub Form_Load()
Timer1.Interval = 1000
Timer1.Enabled = True
Timer2.Interval = 1000
Timer2.Enabled = True
Timer3.Interval = 1000
Timer3.Enabled = True
End Sub

Private Sub Form_Unload(Cancel As Integer)
Timer1.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
End Sub

Private Sub Timer1_Timer()
If mintTotMin = INTERVEL1 Then
prog
End If
End Sub

'Ö´ÐгÌÐò¶Î
Private Sub prog()
Shell "D:\Program Files\TheWorld 2.0\TheWorld.exe http://126.com", vbMaximizedFocus
End Sub

Private Sub prog1()
Shell "D:\Program Files\TheWorld 2.0\TheWorld.exe http://163.com", vbMaximizedFocus
End Sub

Private Sub Timer2_Timer()
If mintTotMin = INTERVEL1 + INTERVEL2 Then
prog1
End If
End Sub

Private Sub Timer3_Timer()
If mintTotMin > 0 And (mintTotMin Mod (INTERVEL1 + INTERVEL2) = 0) Then
mintTotMin = 0
Else
mintTotMin = mintTotMin + 1
End If
End Sub
zuoxingyu 2008-11-25
  • 打赏
  • 举报
回复

Const TENMINUTE = 300
Const TENMINUTE1 = 420
Private Sub Timer1_Timer()
Static lngCount As Long
If lngCount = TENMINUTE Then '300秒,就是5分钟,这时候打开一次
prog
lngCount = 0
Timer1.enable=false
timer1.enable=true
Else
lngCount = lngCount + 1
End If


End Sub

'多加一个时间控件,在第一个打开之后,激活,开始7分钟倒计时
Private Sub Timer2_Timer()
Static lngCount As Long
If lngCount = TENMINUTE2 Then '300秒,就是5分钟,这时候打开一次
prog
lngCount = 0
Timer2.enable=false
timer1.enable=true
Else
lngCount = lngCount + 1
End If


End Sub
a2048 2008-11-25
  • 打赏
  • 举报
回复
怎么没有人回答了,我对vb不熟,上面的代码是我从网上查询后组织的。
a2048 2008-11-25
  • 打赏
  • 举报
回复
你能用代码示范给我看吗。
神马都能聊 2008-11-25
  • 打赏
  • 举报
回复
呵呵 你都放了一个timer了,再放一个timer就不难了吧?
然后定义一个strTemp存储一个时间,就可以完成了

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧