我知道的,有个api函数可以用,而且效果好。想知道就给我发个消息吧。

解决方案 »

  1.   

    Private Declare Function GetDesktopWindow Lib "user32" () As Long
    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
    Private Declare Function GetSystemDirectory Lib _
        "kernel32" Alias "GetSystemDirectoryA" _
        (ByVal lpBuffer As String, ByVal nSize _
        As Long) As Long
    Private Const SE_ERR_NOASSOC = 31
    Public Sub ShellDoc(strFile As String)
        Dim lngRet As Long
        Dim strDir As String
        lngRet = ShellExecute(GetDesktopWindow, _
            "open", strFile, _
            vbNullString, vbNullString, vbNormalFocus)
        If lngRet = SE_ERR_NOASSOC Then
            ' no association exists
            strDir = Space(260)
            lngRet = GetSystemDirectory(strDir, _
                Len(strDir))
            strDir = Left(strDir, lngRet)
            ' show the Open with dialog box
            Call ShellExecute(GetDesktopWindow, _
                vbNullString, "RUNDLL32.EXE", _
                "shell32.dll,OpenAs_RunDLL " & _
                strFile, strDir, vbNormalFocus)
        End If
    End Sub
    Private Sub Command1_Click()
    ShellDoc "C:\DOS\Msavirus.lst"
    End Sub
      

  2.   

    ShellExecute VB声明 
    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 
    说明 
      查找与指定文件关联在一起的程序的文件名 
    返回值 
    Long,非零表示成功,零表示失败。会设置GetLastError 
    参数表 
    参数 类型及说明 
    hwnd Long,指定一个窗口的句柄,有时候,windows程序有必要在创建自己的主窗口前显示一个消息框 
    lpOperation String,指定字串“open”来打开lpFlie文档,或指定“Print”来打印它 
    lpFile String,想用关联程序打印或打开一个程序名或文件名 
    lpParameters String,如lpszFlie是可执行文件,则这个字串包含传递给执行程序的参数 
    lpDirectory String,想使用的完整路径 
    nShowCmd Long,定义了如何显示启动程序的常数值。参考ShowWindow函数的nCmdShow参数 
      

  3.   

    Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long
    ?lpFile
    Pointer to a null-terminated string specifying a filename. This can be a document or executable file.?lpDirectory
    Pointer to a null-terminated string specifying the default directory.?lpResult
    Pointer to a buffer to receive the filename when the function returns. This filename is a null-terminated string specifying the executable file started when an “open?association is run on the file specified in the lpFile parameter.
      

  4.   

    Declare Function ShellExecuteEx Lib "shell32.dll" Alias "ShellExecuteEx" (SEI As SHELLEXECUTEINFO) As Long