Why are certain default application associations "locked"?

After associating my MP3 files with MPlayer using the Open with/Choose default program... dialogue I can no longer change that association using said dialogue, the Always use this [...] Checkbox is henceforth always greyed out (Control Panel -> Default Programs -> Associate a file type or protocol with a program does not let me change it either, it seems to just use the same dialogue anyway).

That also happened for MP4 files, but not for MKVs for example, and if I associate my MP3 files with other applications like VLC media player it does not get blocked. Why is that and can I avoid this beforehand (thankfully, I know ways to fix it afterwards already)?

Another obervation: The blocking programs (I managed to block it with an association to Visual Studio as well) do not appear in the Recommended Programs of the open-with-dialogue (And the explorer said: "The current program is not recommended, but I won't let you change it, ha!").

A screenshot:

Screenshot

As you can see on the top left (if you know the icon of MPlayer), the file is currently associated with MPlayer.


Ways to fix it (note: This question is not about fixing it):

  1. Using the Default Programs

    Control Panel -> Default Programs -> Set Default Programs, select WMP, Choose defaults for this program, check .mp3.

    This should reassociate the files with Windows Media Player (WMP), and you can create a new association in Windows Explorer.

  2. Using the registry (as always, keep your hands off it unless you know what you are doing or if you are fine with accidentally breaking your system):

    HKEY_CURRENT_USER -> Software -> Microsoft -> Windows -> CurrentVersion -> Explorer -> FileExts > .mp3

    Here you could for example clean up the open-with-list, and the current default program seems to be saved here as well in the key UserChoice. There you can change the ProgId string to another application, and you can associate it with WMP by entering WMP11.AssocFile.MP3 or just pick another application right away.

    You may need to mess with permissions on the key though, if you cannot change the ProgId value.

(As I now have three answers that do not answer the question: This question is not about getting the association to work again. I do not like fighting symptoms, I prefer cures.)


Solution 1:

It seems that the forum post Cannot set file association - option greyed out has the answer:

In HKEY_CLASSES_ROOT\Applications\regedit.exe there is a REG_SZ 0value called NoOpenWith

Check if you have this value in your registry.

If so, the real question is: why is there such a value and which program set it?

Solution 2:

MPlayer probably edits the registry, changing/creating the registry key you mentioned before (HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Explorer > FileExts > .mp3).

Below I will have two separate things you should look at (one has two parts, method A and method B) For Windows Vista, 7 or Server 2008

Method A

  1. Type regedit in RUN dialog box and press Enter. Now goto:

    HKEY_CLASSES_ROOT\Unknown\shell\opendlg\command
    
  2. In right-side pane, change value of "Default" key to as following:

    %SystemRoot%\system32\rundll32.exe
    %SystemRoot%\system32\shell32.dll,OpenAs_RunDLL %1 %2
    

    Note: We have only appended %2 at last of default value. You can use any number from 2-9.

  3. Exit registry editor and try to open "Open With" dialog box. You'll find that the checkbox is disabled now as shown in following screenshot:

    Open_with_disabled.jpg

Method B

  1. Type regedit in RUN dialog box and press Enter. Now goto:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer
    

    If the "Explorer" key is not present, create it manually.

  2. Now in right-side pane, create a new DWORD value NoFileAssociate and set its value to 1

  3. Exit registry editor and try to open "Open With" dialog box. You'll find that the checkbox is completely removed now as shown in following screenshot:

    Open_with_invisible.jpg

NOTE: As you can see, when we use Method A to disable the checkbox, the "Open With" dialog box doesn't show recommended programs list which it does when we use Method B. Also if you see the last screenshot of Windows Vista, the Method B totally remove the checkbox instead of disabling it.

BONUS TIP: This tutorial can also be used in reverse condition. e.g. if this checkbox is already disabled in your Windows and you want to enable it, then you can remove the %2 mentioned in Method A or set value of DWORD value to 0 as mentioned in Method B.

THING TO LOOK AT 2: To prevent the registry key from being modified, you can restrict the permissions (you may need to do this after you install MPlayer).

Here's how:

  1. Navigate to the registry key you want to change (and click on it).
  2. Click Edit (on the top menu).
  3. Click permissions.
  4. Click advanced.
  5. Select the appropriate group (ex. SYSTEM, ADMINISTRATORS(...)
  6. Click edit.
  7. Deny permission to "Set Value".
  8. Click OK... and close all the windows you just opened.