简单的说,比如我有个.rm的文件,双击以后,会由realone来打开这个文件进行播放,再比如,双击某个rar文件,系统会自动调用winrar打开他。这个功能如何在vb中实现呢?我在flashget中见过,下载下来的文件双击就可以调用默认的应用程序来启动它,请教一下该怎么做谢谢!

解决方案 »

  1.   

    借助ShellExecute 和 Shell "rundll32 shell32,OpenAs_RunDLL .log" 这样的形式即可,下面是一个VB例程,参考修改即可:更多参考:http://member.netease.com/~kenj/JB.htmhttp://community.csdn.net/Expert/topic/4080/4080217.xml?temp=.16177******************************************无关联程序时开启“打开方式”窗口 98-9-03
    在使用资源管理器时, 双击一个未建立关联的文件, 就会出现一个 打开方式窗口。 而在程序中使用 ShellExecute 打开文件时, 如果没有关联程序, 也可以打开该窗口。
    声明:
    Declare Function GetDesktopWindow Lib "user32" () As Long
    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
    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
    ' 没有关联的程序
    strDir = Space(260)
    lngRet = GetSystemDirectory(strDir, _
    Len(strDir))
    strDir = Left(strDir, lngRet)
    ' 显示打开方式窗口
    Call ShellExecute(GetDesktopWindow, _
    vbNullString, "RUNDLL32.EXE", _
    "shell32.dll,OpenAs_RunDLL " & _
    strFile, strDir, vbNormalFocus)
    End If
    End Sub
    使用:
    OpenDoc "c:\aa.log"
      

  2.   

    shellexecute(hwnd, "open", "c:\1.bmp", "", "", sw_show)
      

  3.   

    你这个在注册表里面,填写一些信息几可以了
    如:你要打开.gnf的
    在ROOT 里面先建一个.gnf的,在默认里面写入: GnExe在建GnExe项。
    在GnExe建一个自项:defaultIcon  ; 里面的默认值填写你执行文件的图标,索引号
    跟defaulticon同级目录下面见一个shell目录,在建一个子项open ,再在open下建一个command项,
    在里面的默认里填写你的执行文件的路径。