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

时间:2012-12-06 16:28:50

标签: registry windows-shell file-association

上下文

对于给定的文件扩展名,我需要找出文件关联的ProgID(?)(例如 .docx Word.Document )。我需要他(a)识别特定的相关软件(例如 Adob​​e Nuance )并在他们打开文档之前进行相应处理,并且(b)使Outlook显示正确的虚拟文件图标(邮件类IPM.Document.[ProgID])。

当前的解决方案

我只是在(Default)

读出注册表项的HKEY_CURRENT_ROOT\[extension]条目

问题

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

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

1 个答案:

答案 0 :(得分:3)

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

  

HKEY_CURRENT_USER \软件\微软\的Windows \ CurrentVersion \ Explorer中\ FileExts \   。扩展名 \ UserChoice \

您需要检查此密钥以查找ProgId值并使用该密钥(如果存在),并将HKCR\extension仅视为默认回退。