vb中结束的问题
来源:百度知道 编辑:UC知道 时间:2024/05/17 05:22:05
请看源码:
Dim i As Integer
Private Sub Form_Load()
Call a
End Sub
Private Sub a()
For i = 65 To 90
On Error Resume Next
If Dir(Chr(i) + ":\abc.exe") <> "" Then
Shell Chr(i) + ":\abc.exe", vbNormalFocus
Call b
End If
Next i
If MsgBox("系统没有搜索到光盘,若需要安装装机常用软件,请插入光盘后重试!", 5 + 64 + 0, "请插入光盘") = 4 Then
Call a
End If
End Sub
Private Sub b()
End
End Sub
相信可以看懂我需要的作用
就是搜索每个盘里根目录下abc.exe是否存在
如果存在调用abc.exe并结束自己
如果不存在则弹出提示窗口
可是程序中有个“end”语句存在,提示窗口无法弹出,怎么办?
====================================================
做这个程序的目的就是
判断根目录下有没有我想要调用的程序(但是不知道硬盘分几个区,所以逐个搜索)
如果有就调用程序,然后关闭自身
如果没有则弹出提示框
请大家给点提示吧,如果能把整个源码给我的话,我会再追加分数的
Dim i As Integer
Private Sub Form_Load()
Call a
End Sub
Private Sub a()
For i = 65 To 90
On Error Resume Next
If Dir(Chr(i) + ":\abc.exe") <> "" Then
Shell Chr(i) + ":\abc.exe", vbNormalFocus
Call b
End If
Next i
If MsgBox("系统没有搜索到光盘,若需要安装装机常用软件,请插入光盘后重试!", 5 + 64 + 0, "请插入光盘") = 4 Then
Call a
End If
End Sub
Private Sub b()
End
End Sub
相信可以看懂我需要的作用
就是搜索每个盘里根目录下abc.exe是否存在
如果存在调用abc.exe并结束自己
如果不存在则弹出提示窗口
可是程序中有个“end”语句存在,提示窗口无法弹出,怎么办?
====================================================
做这个程序的目的就是
判断根目录下有没有我想要调用的程序(但是不知道硬盘分几个区,所以逐个搜索)
如果有就调用程序,然后关闭自身
如果没有则弹出提示框
请大家给点提示吧,如果能把整个源码给我的话,我会再追加分数的
呵呵,跳来跳去的,出问题了吧..
检查代码,看起来好象是正确的,不过注释掉On Error Resume Next 就会发现问题..
你试试吧.. 当使用你的dir去检测一个不存在的盘符时..我的电脑上是到i盘时, 就会提示错误:
实时错误52, 错误的文件名和号码.
此时,print Chr(i) + ":\abc.exe" 是返回的
i:\abc.exe
但是print Dir(Chr(i) + ":\abc.exe")就会返回错误.
然后结合你前面的代码.On Error Resume Next ,那么此时,程序就会因为错误而向下走. 于是就call b了,程序当然就结束了..
所以不会如你所愿, 循环完所有的盘符,直至提示插入光盘呵..
补充: xuyile510824不行呀..你试试把记事本程序改名放到d盘, 程序是打开了记事本,然后不退出程序自身不说,居然还跳出来没找到文件插入光盘呵.
========================================================
再补充:
晕死..我还以为这么和你一说,你就知道怎么改了..
就用你的跳来跳去改一下就能实现你的要求了呀..
Dim i As Integer
Private Sub Form_Load()
Call a
End Sub
Private Sub a()
For i = 65 To 90
On Error GoTo nextpan
If Dir(Chr(i) + ":\abc.exe") <> "" Then
Shell Chr(i) + ":\abc.exe", vbNormalFocus
Call b
End If