OpenWithProgIds注册表项的用途是什么



我已经阅读了许多Stack Overflow问题以及我能找到的所有相关Microsoft文档,但我找不到确切的答案。

我正在将我的程序注册为Windows 10中特定扩展的默认应用程序。我在注册表中添加了以下条目:

  • HKCUSoftwareClassesmy-program.ext
  • HKCUSoftwareClasses.ext(Default)=my-program.ext
  • HKCUSoftwareClasses.extOpenWithProgIdsmy-program.ext

一切正常,关联成功创建

但是,我不明白OpenWithProgIds的目的。我认为它代表了此扩展的替代应用程序列表,但是,即使没有将my-program.ext添加到OpenWithProgIds,我的程序仍然存在于"打开方式"列表中以及通过.ext(Default)注册的所有以前的应用程序中。

似乎有某种缓存包含了特定扩展的所有先前关联的程序。但如果是这样,我们为什么需要OpenWithProgIds呢?这种行为可能是在Windows10中引入的,OpenWithProgIds被认为是过时的。

如有任何想法或澄清,我将不胜感激。

根据文档,OpenWithProgIDs子密钥的目的是为用户提供更好的体验。

摘录:

您可以通过将版本化的ProgID作为值添加到HKEY_CLASSES_ROOT<扩展>\OpenWithProgids键。此注册表项包含与文件扩展名关联的备用ProgID的列表。与列出的ProgID关联的应用程序显示在Open withProduct Name子菜单中。如果在OpenWithListOpenWithProgids键中都指定了相同的应用程序,则操作系统会合并重复的应用程序。

根据本文为文件名扩展指定文件处理程序:

OpenWithProgids密钥仅在Windows XP中受支持。因为其他操作系统会忽略此键,所以不要将其用作文件处理程序的唯一注册。使用此密钥可以在Windows XP中提供更好的用户体验。

相关内容

  • 没有找到相关文章

最新更新