是这样的:我程序里提供上传文件保存到数据库中(image类型),上传的文件可能是各种类型如Gif,jpg,exe,zip,bmp,bat等,当用户想打开看时就从数据库中下来在本地形成临时文件,再打开这个文件。
我查了很多可用winexe,shell,shellexecute等,但这些都必须指定应用程序,而我的实际情况是没法指定应用程序的,所以就不知怎么办了,不知有无哪个API或方法给个文件名,让操作系统自己判断用什么程序去打开它,当然如操作系统不认识的
文件类型可另作处理。

解决方案 »

  1.   

    就用shellexecute,谁说一定要指定应用程序啊?
      

  2.   

    用shellexecute,申明的API老提示我找不到shell.叫我怎么办?
      

  3.   

    这样申明错了吗:
    Private Declare Function ShellExecute Lib "shell" (ByVal hWnd As Integer, ByVal lpszOp As String, _
        ByVal lpszFile As String, ByVal spszParams As String, ByVal lpszDir As String, _
        ByVal fsShowCmd As Integer) As Integer这样也不行:
    Private Declare Function ShellExecute Lib "shell32" (ByVal hWnd As Integer, ByVal lpszOp As String, _
        ByVal lpszFile As String, ByVal spszParams As String, ByVal lpszDir As String, _
        ByVal fsShowCmd As Integer) As Integer这样也不行,提示找不到入口
    Private Declare Function ShellExecute Lib "shell32.dll" (ByVal hWnd As Integer, ByVal lpszOp As String, _
        ByVal lpszFile As String, ByVal spszParams As String, ByVal lpszDir As String, _
        ByVal fsShowCmd As Integer) As Integer
      

  4.   

    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
      

  5.   

    to: rainstormmaster(rainstormmaster)
    好用,马上给分。:)