Where is the Default Program associations stored in the registry? [duplicate]
If I run the assoc
command-line utility for an extension, it shows the file type/description for the extension I set in the registry. But if I go to Control Panel -> Default Programs - Set Associations then I see a different description and default program.
It used to be that setting the two keys:
-
HKCR\.ext
(default) = Identifier -
Identifier (default) = "File Description"
- \DefaultIcon (default) = Some icon
- \Shell\Open\Command (default) = Some editor
But now it appears there is an override elsewhere, which is what gets displayed in the Default Programs listing.
My question is, where i this overridden association information stored? I'm assuming it is in the registry, but I don't see it in the keys I expect it to be. I believe this was changed in the Vista time frame, but it may have been in XP too.
Update: Since there is some confusion, do the following test. Rename a file to some new extension. Create an association in the registry keys mentioned above. Then right click on the file, Open With and select a different program (checking to make it the default). Now check the registry. It is unchanged, but now the file is associated with a different description, icon and default program.
Should be in:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes
and HKCU\SOFTWARE\Classes
And I don't believe that this has changed recently.
The priority is for current user, then local machine (aliased I believe to classes root).
Explorer uses a different set of registry keys that can be found at:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\