如果我运行assoc
扩展的命令行实用程序,它会显示我在注册表中设置的扩展的文件类型/描述。但如果我转到控制面板 -> 默认程序 - 设置关联然后我看到不同的描述和默认程序。
以前是设置两个键:
HKCR\.ext
(默认)=标识符- 标识符(默认)=“文件描述”
- \DefaultIcon (默认) =一些图标
- \Shell\Open\Command(默认)=部分编辑
但现在似乎在其他地方有一个覆盖,这就是在默认程序列表中显示的内容。
我的问题是,这个被覆盖的关联信息存储在哪里?我假设它在注册表中,但我没有在期望的键中看到它。我相信这在 Vista 时间范围内发生了变化,但它可能也在 XP 中发生了变化。
更新:由于存在一些混淆,请进行以下测试。将文件重命名为某个新扩展名。在上面提到的注册表项中创建关联。然后右键单击该文件,打开用并选择不同的程序(选中以使其成为默认程序)。现在检查注册表。它没有改变,但现在文件与不同的描述、图标和默认程序相关联。
答案1
应该在:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes
和HKCU\SOFTWARE\Classes
我不相信这种情况最近有所改变。
优先级是当前用户,然后是本地机器(我相信别名为根类)。
Explorer 使用一组不同的注册表项,可以在以下位置找到:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\