默认程序关联存储在注册表中的哪里?

默认程序关联存储在注册表中的哪里?

如果我运行assoc扩展的命令行实用程序,它会显示我在注册表中设置的扩展的文件类型/描述。但如果我转到控制面板 -> 默认程序 - 设置关联然后我看到不同的描述和默认程序。

以前是设置两个键:

  • HKCR\.ext(默认)=标识符
  • 标识符(默认)=“文件描述”
    • \DefaultIcon (默认) =一些图标
    • \Shell\Open\Command(默认)=部分编辑

但现在似乎在其他地方有一个覆盖,这就是在默认程序列表中显示的内容。

我的问题是,这个被覆盖的关联信息存储在哪里?我假设它在注册表中,但我没有在期望的键中看到它。我相信这在 Vista 时间范围内发生了变化,但它可能也在 XP 中发生了变化。

更新:由于存在一些混淆,请进行以下测试。将文件重命名为某个新扩展名。在上面提到的注册表项中创建关联。然后右键单击该文件,打开用并选择不同的程序(选中以使其成为默认程序)。现在检查注册表。它没有改变,但现在文件与不同的描述、图标和默认程序相关联。

答案1

应该在:

HKEY_LOCAL_MACHINE\SOFTWARE\ClassesHKCU\SOFTWARE\Classes

我不相信这种情况最近有所改变。

优先级是当前用户,然后是本地机器(我相信别名为根类)。

Explorer 使用一组不同的注册表项,可以在以下位置找到:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\

相关内容