比方我在某个JPG文件图标上点右键,打开方式菜单里会列出所对应的程序,在程序里如何获取这个列表?

解决方案 »

  1.   

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\OpenWithList
      

  2.   

    RegEnumKey 枚举我就不说了吧。:)
      

  3.   

    默认打开程序关联位置:
    使用注册表编辑器来修改 Regedit.exe 方式检查路径。默认数据值为 " (Default) " 值在以下注册表项中: 
    HKEY_CLASSES_ROOT\jpegfile\shell\open\command 其他的可能用CLSID关联:
    HKEY_CLASSES_ROOT\jpegfile\CLSID
    HKEY_CLASSES_ROOT\jpegfile\shellex
      

  4.   

    to pomelowu:
    谢谢你的指点,HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jpg\OpenWithList里面确实是有一个程序的列表,不过有两个问题,第一里面只有执行程序的文件名,而没有程序的全名、路径等信息,应该还有一个地方保存这些信息的,暂时还没有找到,第二这个列表内的内容和Open with弹出菜单里显示的内容不太一致,似乎是多出来一些程序。
      

  5.   

    to wangk:
    HKEY_CLASSES_ROOT\jpegfile\shell\open\command 里面保存的是文件关联信息,诸如Open、Edit、Print等操作所关联的程序,而不是Open with列表。
      

  6.   

    checkout HKEY_CLASSES_ROOT\Applications
      

  7.   

    应该就是这个地方了。至于应用程序的出处,看js给的这个key下面的subkey。
    多出来的应用程序估计是右键菜单的一些其他选项吧?