
vb中一个语句执行完以后等一会再执行下一条语句
PrivateSubCommand2_Click()OnErrorResumeNextShellApp.Path&"\yxf.exe"Fori=1To1000000DoE...
Private Sub Command2_Click()
On Error Resume Next
Shell App.Path & "\yxf.exe"
For i = 1 To 1000000
DoEvents
Next
Open App.Path & "\data.txt" For Input As #1
Line Input #1, t
t1 = Split(Trim(t), ",")
Label10 = Format(t1(0), "0.000")
Label11 = Format(t1(1), "0.000")
Label12 = Format(t1(2), "0.000")
Close #1
End Sub
vb运行时 调用yxf.exe完成后,等一会再执行下面的语句,因为yxf.exe执行完后,data.txt中的数会更新,想把更新后的数显示出来。现在的程序必须点击两次“Command2” Label10 等中的数才显示更新,点击一次“Command2” ,data.txt中的数更新了,但Label10 等中的数没有更新 展开
On Error Resume Next
Shell App.Path & "\yxf.exe"
For i = 1 To 1000000
DoEvents
Next
Open App.Path & "\data.txt" For Input As #1
Line Input #1, t
t1 = Split(Trim(t), ",")
Label10 = Format(t1(0), "0.000")
Label11 = Format(t1(1), "0.000")
Label12 = Format(t1(2), "0.000")
Close #1
End Sub
vb运行时 调用yxf.exe完成后,等一会再执行下面的语句,因为yxf.exe执行完后,data.txt中的数会更新,想把更新后的数显示出来。现在的程序必须点击两次“Command2” Label10 等中的数才显示更新,点击一次“Command2” ,data.txt中的数更新了,但Label10 等中的数没有更新 展开
5个回答
展开全部
VB的Shell命令是异步执行的,也就是说它运行后并不暂停,而是继续执行下面的其他命令。所以你可以通过比较Shell运行前和运行后的data.txt文件时间来决定何时打开data.txt,如:
Private Sub Command2_Click()
Dim fd As Date
On Error Resume Next '最好不要这句,否则出了什么错你都不知道
fd = FileDateTime(App.Path & "\data.txt") '先获得文件当前的时间
Shell App.Path & "\yxf.exe"
Do
DoEvents
Loop While FileDateTime(App.Path & "\data.txt") = fd '如果文件时间改变了就退出循环
DoEvents
Open App.Path & "\data.txt" For Input As #1
Line Input #1, t
t1 = Split(Trim(t), ",")
Label10 = Format(t1(0), "0.000")
Label11 = Format(t1(1), "0.000")
Label12 = Format(t1(2), "0.000")
Close #1
End Sub
Private Sub Command2_Click()
Dim fd As Date
On Error Resume Next '最好不要这句,否则出了什么错你都不知道
fd = FileDateTime(App.Path & "\data.txt") '先获得文件当前的时间
Shell App.Path & "\yxf.exe"
Do
DoEvents
Loop While FileDateTime(App.Path & "\data.txt") = fd '如果文件时间改变了就退出循环
DoEvents
Open App.Path & "\data.txt" For Input As #1
Line Input #1, t
t1 = Split(Trim(t), ",")
Label10 = Format(t1(0), "0.000")
Label11 = Format(t1(1), "0.000")
Label12 = Format(t1(2), "0.000")
Close #1
End Sub
展开全部
要On Error Resume Next来掩耳盗铃、自欺欺人?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用循环来延时不是很好。如果想比较准确的暂停还是用函数:
Public Sub Delay(PauseTime As Long)'参数,需要延时的秒数。
Dim Start As Single
Start = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop
End Sub
Public Sub Delay(PauseTime As Long)'参数,需要延时的秒数。
Dim Start As Single
Start = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
waitforsingleobject
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询