试一试FindExecutable,声明如下:
Private Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long

解决方案 »

  1.   

    其实你不用知道他用的什么,你只需要知道你要看的文件就可以了
    系统会自动处理的,用这个函数显示就OK了:
    ShellExecute(0, "open", "要看的文件全路径", vbNullString, vbNullString, vbNormal)
      

  2.   

    FindExecutable VB声明 
    Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long 
    说明 
    查找与一个指定文件关联在一起的程序的文件名。可用Windows注册表编辑器将文件类型与特定的应用程序关联到一起。比如,扩展名为.TXT的文本文件通常与Windows记事本(Notepad.exe)关联到一起。如在文件管理器中双击含.TXT扩展名的一个文件,会自动启动记事本,并在其中载入文本文件 
    返回值 
    Long,大于32表示成功;31表示不存在文件类型的关联;0表示系统内存或资源不足;ERROR_FILE_NOT_FOUND表示指定的文件不存在;ERROR_PATH_NOT_FOUND表示指定的路径不存在;ERROR_BAD_FORMAT表示执行格式无效 
    参数表 
    参数 类型及说明 
    lpFile String,指定要为其查找相关程序的一个文件名或程序名 
    lpDirectory String,要使用的默认目录的完整路径 
    lpResult String,指定一个字串缓冲区,用于装载可执行程序的名字。注意这个字串预先至少都要初始化成MAX_PATH个字符的长度 
      

  3.   

    这个问题本身就有问题,看图的?但并不一定所有图像格式都用一个软件!图像按文件名后缀和某程序关联!
    如过想掉也不用知道啊!直接用API ShellExecute打开图像,不就好了!让系统判断!
      

  4.   

    使用注册表API如 RegOpen, RegOpenKey, Public RegQueryValue打开注册表的HKEY_CLASSES_ROOT中找图片的扩展名,再找其Shell子键,
    其内容中保存有打开该图片的应用程序或该应用程序的CLSID值,如果是CLSID值就要再找一次,就找到应用程序是什么啦
      

  5.   

    我的本意是 fs_windy(飛龍)的方法,但是看到 Azi03(微风轻扬) 的方法一觉得似乎可行,等我试一试,ok的话在给分~