注册 登录
编程论坛 VB6论坛

VB 用 Shell " explorer " 打开.dat 结尾的文件,总是无效的过程调用或函数, 问题在哪

郭金龙 发布于 2014-11-17 08:23, 1416 次点击
标准模块:
Type pinfo
name As String * 4
age As Integer
addr As String * 10
End Type

窗体模块
Option Base 1(声明)
Private Sub Form_Click()
Static a() As pinfo
Open App.Path & "\p_list.dat" For Append As #1
n = InputBox("请问你要输入几个人的信息?")
ReDim a(n) As pinfo
For i = 1 To n
  a(i).name = InputBox("请输入姓名")
  a(i).age = InputBox("请输入年龄")
  a(i).addr = InputBox("请输入所在地区")
  Write #1, a(i).name, a(i).age, a(i).addr

Next
Close #1
  b = MsgBox("文件写入完毕是否查看该文件?", vbYesNo + vbQuestion)
If b = vbYes Then
  Shell " explore " & App.Path & "\p_list.dat"
End If
End Sub
4 回复
#2
风吹过b2014-11-17 15:06
Shell " explore " & App.Path & "\p_list.dat"

你这条命令的意思是让 WINDOWS 资源管理器 ( explore ,这个命令 我没测试,不知有没有错误)
但 WINDOWS 资源管理器 自己是打不开 dat 这个文件, 然后就调用外部程序来打开,然后外部程序打开时,出现错误。所以就报你的错。

修改方向:
1、文件后缀,使用  .txt
2、自己写一个 针对这个 dat 文件的查看器,然后 shell 时,使用自己的这个文件查看器来查看 dat 文件。
3、指定使用 记事本 来打开这个 dat 文件。  
shell "%windir%\system32\notepad.exe  " & App.Path & "\p_list.dat"

方法和命令均未测试。
#3
zhengang10262014-11-17 19:03
回复 2 楼 风吹过 b
为什么还是显示“实时错误53,文件未找到”?
shell 函数到底该怎么用?
#4
zhengang10262014-11-17 19:37
用 Shell "C:\windows\system32\notepad.exe  " & App.Path & "\p_list.dat"可以,
看样子VB是不认"%windir%"这种表述方式
#5
zhengang10262014-11-17 20:00
另外,被调用的应用在其他位置也不行。例如我将notepad.exe复制到D盘根目录下,然后用下列句子调用什么反映都没有,大侠们能解释下为什么吗?
 Shell "d:\notepad.exe  " & App.Path & "\p_list.dat", vbNormalFocus
甚至将notepad.exe复制到C盘根目录下或C盘windows目录下都没用,非得在C:\windosw\system32目录下才行,奇了怪了!

[ 本帖最后由 zhengang1026 于 2014-11-17 20:07 编辑 ]
1