对于给定的文件扩展名,我需要找出文件关联的ProgID(?)(例如 .docx 的 Word.Document )。我需要他(a)识别特定的相关软件(例如 Adobe 与 Nuance )并在他们打开文档之前进行相应处理,并且(b)使Outlook显示正确的虚拟文件图标(邮件类IPM.Document.[ProgID]
)。
我只是在(Default)
HKEY_CURRENT_ROOT\[extension]
条目
在某些计算机上,对于某些文件类型,HKCR中的(Default)
条目为 为空 。但是,Windows资源管理器(shell)显示相应的图标,打开文件时肯定有一个工作文件关联。
显然,我没有使用正确的方法来检索文件关联。是否有ASSOCSTR我错过了我可以传递给AssocQueryString,它将返回此信息,或者我忽略的关于MSDN上文件关联的任何其他调用或标准文档?
答案 0 :(得分:3)
自从Windows Vista(我认为)以来,用户可以通过密钥覆盖正常的HKCR文件关联系统
HKEY_CURRENT_USER \软件\微软\的Windows \ CurrentVersion \ Explorer中\ FileExts \ 。扩展名 \ UserChoice \
您需要检查此密钥以查找ProgId
值并使用该密钥(如果存在),并将HKCR\extension
仅视为默认回退。