回 帖 发 新 帖 刷新版面

主题:shell函数的作用及格式

题目如下:
应用程序的功能:三个文件系统控件是同步的,即选择驱动器列表框中的驱动器时,在目录列表框中显示当前驱动器下的文件夹,在文件列表框中显示目录列表框中打开的文件夹中的文件。组合框控件用于限制文件列表框显示的文件类型。当单击文件列表框的文件名时,在右下的列表框中显示文件列表框中选定的文件名称。当双击文件列表框的可执行文件名时,将运行双击的文件。
代码如下:
Private Sub Form_Load()
    Label1.Caption = "驱动器列表框"
    Label2.Caption = "目录列表框"
    Label3.Caption = "文件列表框"
    Label4.Caption = "文件列表框中显示的文件类型:"
    Label5.Caption = "在文件列表框中选中的文件:"
    Label1.FontSize = 15
    Label2.FontSize = 15
    Label3.FontSize = 15
    Label4.FontSize = 15
    Label5.FontSize = 15
    Combo1.Text = Combo1.List(0)
End Sub
Private Sub Drive1_Change()     ' 当在驱动器列表框选择新的驱动器时
   Dir1.Path = Drive1.Drive         ' 目录列表框的路径改变
End Sub
Private Sub Dir1_Change()     ' 目录列表框的路径改变时
   File1.Path = Dir1.Path          ' 文件列表框的路径改变
End Sub

Private Sub Combo1_Click()
   File1.Pattern = Trim(Right(Combo1.Text, 5))  '文件类型为组合框的后5个字符
End Sub

Private Sub File1_Click()
   List1.AddItem File1.FileName
End Sub
Private Sub File1_DblClick()
   Dim RetVal
   Dim fname As String
   If Right(File1.Path, 1) = "\" Then                '  选定的目录是根目录
      fname = File1.Path + File1.FileName
   Else                                                 '  选定的目录是子目录
   fname = File1.Path + "\" + File1.FileName
   End If
   RetVal = Shell(fname, 1)                              '  调用Shell函数运行程序
End Sub
看不懂最后一个双击事件代码,尤其中shell函数的格式及功能.请指教!谢谢!

回复列表 (共1个回复)

沙发

不好意思,搞懂了.答案如下:
Shell函数是VB中的内部函数,它负责执行一个可执行文件,返回一个Variant(Double),如果成功的话,代表这个程序的进程ID,若不成功,则会返回0。 

Shell的语法:Shell(PathName[,WindowStyle])。 

PathName 为必需参数。类型为String,它指出了要执行的程序名,以及任何需要的参数或命令行变量,也可以包括路径名。 

WindowStyle为可选参数。Integer类型,指定在程序运行时窗口的样式。WindowStyle有以下这些值。 

常量 值 描述 
VbHide 0 窗口被隐藏,且焦点会移到隐式窗口。 
VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。 
VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示(缺省值)。 
VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。 
VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。 
VbMinimizedNoFocus 6 窗口会以一个图标来显示,而当前活动的窗口仍然保持活动 

SHELL函数的第一个参数是可以设定为相对路径的。举个例子,在程序同一目录下有个文件example.exe: 

Private Sub Form_Load() 
Dim a As Integer 
a = Shell(App.Path & "\example.exe",vbNormalFocus) 
End Sub 
打开一个example.exe文件 

在VB中SHELL函数的使用仅限制于 *.exe *.com *.bat 等类型的文件。

我来回复

您尚未登录,请登录后再回复。点此登录或注册