VB怎么让语句间隔一段时间执行?

我用VB的API中的SLEEP函数,设置语句中间间隔一定的时间,但运行的时候好像不是每条语句都间隔执行,而是把所有的SLEEP整合到一起,然后在执行语句。就是说,本来有5... 我用VB的API中的SLEEP函数,设置语句中间间隔一定的时间,但运行的时候好像不是每条语句都间隔执行,而是把所有的SLEEP整合到一起,然后在执行语句。就是说,本来有5个SLEEP分开的,但是程序运行的时候却是开始的时候间隔10秒然后把语句一起执行。
用什么方法才能让语句间隔一定时间执行呢?其他方法也可以。
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Form_Activate()
Shell "notepad.exe", vbNormalFocus
Sleep 2000
SendKeys "test"
Sleep 2000
SendKeys "%"
Sleep 2000
SendKeys "{DOWN}{DOWN}{DOWN}{DOWN}~"
Sleep 2000
SendKeys "d:\test.txt"
Sleep 2000
SendKeys "~"
End Sub
展开
 我来答
百度网友c89dd9f984
推荐于2018-05-17 · TA获得超过4563个赞
知道大有可为答主
回答量:5241
采纳率:95%
帮助的人:1652万
展开全部
在vb程序中让两条语句的执行间隔一段时间,可以用API函数的Sleep函数实现。
参考例子:
'************************************************************
'延时
Public Sub Wait(delay As Single)

'Delay app the selected no. of seconds
'example Wait 3.5
'app will loop here for 3.5 seconds

starttime! = Timer
Do Until Timer >= starttime! + delay
Loop

End Sub
'************************************************************

延时2秒
则用
wait(2)
tianqing20wen

推荐于2016-09-20 · TA获得超过2.4万个赞
知道大有可为答主
回答量:8226
采纳率:88%
帮助的人:5154万
展开全部
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Form_Activate()
Shell "notepad.exe", vbNormalFocus
Sleep 2000
SendKeys "test"
DoEvents
Sleep 2000
SendKeys "%"
DoEvents
Sleep 2000

SendKeys "{DOWN}{DOWN}{DOWN}{DOWN}~"
DoEvents
Sleep 2000
SendKeys "d:\test.txt"
DoEvents
Sleep 2000
DoEvents
SendKeys "~"
End Sub

用sleep会将程序挂起 用doevents转让控制权 就好用了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zdingyun
2010-05-11 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48179
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部
Option Explicit

Private Sub Form_Activate()
Timer1.Enabled = True
End Sub

Private Sub Form_Load()
Timer1.Interval = 2000
Timer1.Enabled = False
End Sub

Private Sub Timer1_Timer()
Static sum As Long
sum = sum + 1
If sum = 1 Then
Shell "notepad.exe", vbNormalFocus
ElseIf sum = 2 Then
SendKeys "test"
ElseIf sum = 3 Then
SendKeys "%"
ElseIf sum = 4 Then
SendKeys "{DOWN}{DOWN}{DOWN}{DOWN}~"
ElseIf sum = 5 Then
SendKeys "d:\test.txt"
ElseIf sum = 6 Then
SendKeys "~"
Timer1.Enabled = False
End If
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cjsworld
2010-05-11 · TA获得超过151个赞
知道小有建树答主
回答量:115
采纳率:0%
帮助的人:138万
展开全部
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Activate()
Shell "notepad.exe", vbNormalFocus
DoEvents

Sleep 1000
SendKeys "test"
DoEvents

Sleep 1000
SendKeys "%"
DoEvents

Sleep 1000
SendKeys "{DOWN}{DOWN}{DOWN}{DOWN}~"
DoEvents

Sleep 1000
SendKeys "d:\test.txt"
Sleep 1000

SendKeys "~"
End Sub

参考资料: http://baike.baidu.com/view/327466.htm?fr=ala0_1

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6e017157
2010-05-11 · TA获得超过1046个赞
知道大有可为答主
回答量:2218
采纳率:50%
帮助的人:1256万
展开全部
没这么搞过,实在不行,就给整空循环!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式