1

语境

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

目前的解决方案

我只是在以下位置读出(Default)注册表项的条目HKEY_CURRENT_ROOT\[extension]

问题

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

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

4

1 回答 1

3

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

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\ .extension \UserChoice\

您需要检查此键的ProgId值并使用它(如果存在),并HKCR\extension仅将其视为默认后备。

于 2012-12-07T04:07:56.193 回答