Function FindDirectory(RootPath As String, Mydirectory() As String) Dim intResult, I, intFind As Integer ‘首先查找根目录下的所有子目录 MyPath = "c:\" 注释: 指定路径c:\。 MyName = Dir(MyPath, vbDirectory) 注释: 找寻第一项。 intResult = 1 ReDim Mydirectory(intResult) ‘初始化动态数组 Do While MyName < > "" 注释: 开始循环。 注释: 跳过当前的目录及上层目录。 If MyName < > "." And MyName < > ".." Then 注释: 使用位比较来确定 MyName 代表一目录。 If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
注释: 如果它是一个目录,将其名称存储在一个数组里。 Mydirectory(intResult) = MyPath & MyName intResult = intResult + 1 ReDim Preserve Mydirectory(intResult) ‘分配动态数组实际的元素个数,并保留数组中的数据 End If End If MyName = Dir 注释: 查找下一个目录。 Loop ‘在所有目录里分别查找文件是否存在。 For I = 1 To UBound(Mydirectory)-1 MyFile = Mydirectory(I) & "\regedit.exe" intFind = Len(Dir(MyFile)) If intFind < > 0 Then MsgBox "找到文件" & Dir(MyFile) & "在:" & Mydirectory(I) Next I End Function
If Dir("File.exe") <> "" Then '.... Else MsgBox "缺少所必须的某个文件", vbOKOnly + vbInformation, "错误信息" End If
我的想法就是:如果点击一个按钮,如果本机有注册表就运行,没有就弹出一提示框!我狠菜哈!刚学,复杂的懂不起,希望尽量简单点哈!谢谢!我自己写的程序,但不知错在哪里?请指教哈! Private Sub Command1_Click()If Shell("regedt.exe", 1) Then Shell("regedt.exe", 1)
else: MsgBox "未找到该文件", vbInformation, "错误提示"
End IfEnd Sub
是RegEdit.exe 不是RegEdt.exe Private Sub Command1_Click() If Shell("regedit.exe", 1) Then Shell "regedit.exe", 1 Else MsgBox "未找到该文件", vbInformation, "错误提示" End If End Sub
String, Mydirectory() As String)
Dim intResult, I, intFind As Integer
‘首先查找根目录下的所有子目录
MyPath = "c:\" 注释: 指定路径c:\。
MyName = Dir(MyPath, vbDirectory) 注释: 找寻第一项。
intResult = 1
ReDim Mydirectory(intResult) ‘初始化动态数组
Do While MyName < > "" 注释: 开始循环。
注释: 跳过当前的目录及上层目录。
If MyName < > "." And MyName < > ".." Then
注释: 使用位比较来确定 MyName 代表一目录。
If (GetAttr(MyPath & MyName)
And vbDirectory) = vbDirectory Then
注释: 如果它是一个目录,将其名称存储在一个数组里。
Mydirectory(intResult) = MyPath & MyName
intResult = intResult + 1
ReDim Preserve Mydirectory(intResult)
‘分配动态数组实际的元素个数,并保留数组中的数据
End If
End If
MyName = Dir 注释: 查找下一个目录。
Loop
‘在所有目录里分别查找文件是否存在。
For I = 1 To UBound(Mydirectory)-1
MyFile = Mydirectory(I) & "\regedit.exe"
intFind = Len(Dir(MyFile))
If intFind < > 0 Then MsgBox "找到文件" &
Dir(MyFile) & "在:" & Mydirectory(I)
Next I
End Function
If Dir("File.exe") <> "" Then
'....
Else
MsgBox "缺少所必须的某个文件", vbOKOnly + vbInformation, "错误信息"
End If
Private Sub Command1_Click()If Shell("regedt.exe", 1) Then Shell("regedt.exe", 1)
else: MsgBox "未找到该文件", vbInformation, "错误提示"
End IfEnd Sub
不是RegEdt.exe
Private Sub Command1_Click()
If Shell("regedit.exe", 1) Then
Shell "regedit.exe", 1
Else
MsgBox "未找到该文件", vbInformation, "错误提示"
End If
End Sub
你的这段代码有问题
首先If Shell("regedt.exe", 1) Then这句中的regedt.exe不存在的话会产生实时错误,而不是你msgbox的错误信息.
其次If Shell("regedt.exe", 1) Then Shell("regedt.exe", 1)中第二个shell的参数不能用括号括起来,用括号括起来表示这个函数会返回值,而你又没有设置变量接收这个值,所以会产生语法错误.看样子,楼主学VB心太急了,很多基础的东西都没搞清楚就着手编程序,想一口吃成大胖子啊,建议还是先放下心来细心学基础吧