Shell 函数
      执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。语法Shell(pathname[,windowstyle])Shell 函数的语法含有下面这些命名参数:部分 描述 
pathname 必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。 
Windowstyle 可选参数。Variant (Integer),表示在程序运行时窗口的样式。如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。 
windowstyle 命名参数有以下这些值:常量 值 描述 
vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。 
VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。 
VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。 
VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。 
VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。 
VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。 
说明如果 Shell 函数成功地执行了所要执行的文件,则它会返回程序的任务 ID。任务 ID 是一个唯一的数值,用来指明正在运行的程序。如果 Shell 函数不能打开命名的程序,则会产生错误。注意 缺省情况下,Shell 函数是以异步方式来执行其它程序的。也就是说,用 Shell 启动的程序可能还没有完成执行过程,就已经执行到 Shell 函数之后的语句。你看看这吧?

解决方案 »

  1.   

    或者给app.helpfile赎值就可以了!
      

  2.   

    或者给app.helpfile属性赋值为指定的文件名就可以了!
      

  3.   

    楼上的两位老兄,shell函数不行,根本不能执行非执行文件;在工程属性里指定帮助文件如何打开它呢?都不行呀.
      

  4.   

    根本不需要用SHELL函数啊,我的方法你有没有去试试啊
      

  5.   

    方法很多,我知道几种方法
    一:
    使用HtmlHelp:
    Const HH_DISPLAY_TOPIC = &H0
    Const HH_CLOSE_ALL = &H12Private Sub cmdOpen_Click()
        Dim hwndHelp As Long
        hwndHelp = HtmlHelp(hWnd, app.path+"readme.chm",HH_DISPLAY_TOPIC, 0)
    end subPrivate Sub Form_Unload(Cancel As Integer)
        HtmlHelp Me.hWnd, "", HH_CLOSE_ALL, 0
    End Sub二:
    工程属性-〉选定帮助文件即可三:
    用ShellExecute.Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
        ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long然后这样调用:
    ShellExecute 0&, vbNullString, App.Path & "\readme.chm", vbNullString, vbNullString, vbNormalFocus四:
    shell "hh.exe " & "cch.chm"五:
    WinHelp(Me.hwnd, MyHelpFileName, HELP_CONTENTS, 10)注:有的方法可打开多种类型的帮助文件,有的只能打开一种
      

  6.   

    Shell "hh.exe help.chm"
    help.chm为帮助文件