如何找出不在HKCR中的文件关联



上下文

对于给定的文件扩展名,我需要找到文件关联的ProgID(?)(例如,Word.DocumentFor.docx)。我需要他(a)识别特定的关联软件(例如AdobeNuance相比)并进行相应处理,然后他们才能打开文档,以及(b)使Outlook显示虚拟文件的正确图标(消息类IPM.Document.[ProgID])。

当前解决方案

我只是在HKEY_CURRENT_ROOT[extension]上读取注册表项的(Default)条目

问题

在某些机器上,对于某些文件类型,HKCR中的(Default)条目为。,但是,Windows资源管理器(shell)会显示相应的图标,并且在打开文件时肯定有一个工作文件关联。

很明显,我没有使用正确的方法来检索文件关联。我是否缺少一个ASSOCSTR,可以传递给AssocQueryString以返回此信息,或者我忽略的MSDN上关于文件关联的任何其他调用或标准文档?

自从Windows Vista(我认为)以来,用户就可以通过密钥覆盖正常的HKCR文件关联系统

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\扩展名\UserChoice\

您需要检查此键的ProgId值,如果存在,则使用该值,并仅将HKCRextension视为默认回退。

相关内容

  • 没有找到相关文章

最新更新